Вывод ошибок и уведомлений

181
28 марта 2018, 07:00

Всем здравствуйте. Помогите с выводом ошибок при загрузке файлов. А именно: скрипт формы обр связи имеет функцию прикрепления файлов. В случае ошибки выводится сообщение в теге <p>....</p> и по дефолту все работает отлично, но я использую плагин стилизации для чекбоксов, инпутов и прочего и он меняет порядок кода в html, а как я понял он важен.

По умолчанию без плагина конструкция html такая:

<!-- Файл -->
<input type="file" name="images[]">
<p style="color: #000000; margin-top: 9px; margin-bottom: 9px;"></p>

С плагином:

Как можно исправить и сделать вывод уведомлений? Может можно как то по айди их выводить? Я в этом двоешник) Так что если что, не прогоните уж)

Вот кусок скрипта который все это дело выводит:

(я не использую возм прикрепления нескольких файлов. В настр скрипта стоит 1)

$(document).on('change','input[name="images[]"]',function(e){
// если выбран файл, то добавить ещё элемент "Выбрать файл"
if ((e.target.files.length>0)&&($(this).next('p').next('input[name="images[]"]').length==0) && ($('input[name="images[]"]').length<countFiles)) {
  $(this).next('p').after('<input type="file" name="images[]"><p style="color: #ff0000; margin-top: 9px; margin-bottom: 9px;"></p>');
}
// если выбран файл, то..
if (e.target.files.length>0) {
  // получить файл
  var file = e.target.files[0];
  // проверить размер файла
  if (file.size>maxSizeFile) {
    $(this).next('p').text('Файл не будет отправлен, его размер больше 10 мб');
  }
  // проверить тип файла
  else if (!file.type.match(typeFile)) {
    $(this).next('p').text('Ошибка: Файл не является zip архивом.');
  }
  else {
    // убираем сообщение об ошибке
    if ($(this).next('p')) {
      $(this).next('p').text('');
    }
  }
}
else {
  // если после изменения файл не выбран, то сообщаем об этом пользователю
  $(this).next('p').text('Файл не будет отправлен, т.к. он не выбран');
}
Answer 1

Проблема в том что не выводится ошибка?

Тогда используйте id для вашего p тега, например

<p style="color: #000000; margin-top: 9px; margin-bottom: 9px;" id="p_tag"></p>

Тогда ваши селекторы из $(this).next('p') превратятся в $('#p_tag')

$('#p_tag').text('');

И объявите его 1 раз в самом верху функции: var element = $('#p_tag') и пользуйтесь.

READ ALSO
Как скрыть блок при достижении футера

Как скрыть блок при достижении футера

Есть блок, который начинает ехать за скролом, но нужно что бы он при достижении футера, или 250 px от низа страница скрывался Пробовал такой код...

184
Three.js, проблема со светом

Three.js, проблема со светом

Необходимо, чтобы PointLight была в центре Солнца, соответственно, в определенной фазе у планет была тень, как мы видим фазы Луны

153
react js setState очередь

react js setState очередь

Компонент А получат с сервера сообщение и записывает его в newMessageкомпонент В следит за newMessage и при обновлении вставляет его в массив и рендерит

138