2016-12-21 3 views
0

У меня есть эта форма со всеми другими входами, и все входы отображают ошибку правильно, кроме этой, которая является загрузкой файла.Почему не выполняется проверка правильности jquery?

Может кто-нибудь дать мне пару глаз и посмотреть, где я ошибся?

Когда я console.log(element), который должен показать, когда произошла ошибка, но это вообще не произошло.

это код для моего HTML

<label for="phone">Phone</label><input type="text" name="phone" value=""> 
<label for="city">City</label><input type="text" name="city" value=""> 
<label for="qr_code_image">QR CODE</label><input type="file" class="hidden image-field" name="qr_code_image" id="qr_code_image"><div class="add-image-icon" data-field="qr_code_image"><i class="icon-plus"></i></div> 

в моем JS

  rules: { 
       city: { 
        required: true 
       }, 
       phone: { 
        required: true, 
       }, 
       qr_code_image: { 
        required: true 
       } 
      }, 
      // Where to place the error message 
      errorPlacement: function (error, element) { 
       console.log(element); 
       error.appendTo(element.next('.errorMsg')); 
      } 

я не сделал»добавить дивы для вывода ошибок здесь. с консольным журналом, я могу видеть только две ошибки вместо 3. Я попытался отправить, даже не щелкнув по загрузке изображения.

Edit: я понял, эти два класса как с использованием display: none !important

Есть ли способ сохранить CSS и до сих пор делают проверки на работу?

+0

Я не уверен, но возможно .hidden добавлен как поля по умолчанию, которые нужно игнорировать. Вы можете переопределить поля «игнорировать» следующим образом: «$ (« # myform »). Validate ({ ignore:" .ignore " }); ' –

+0

@MohitBhardwaj Я тоже пытался удалить скрытый класс и все еще не работает, подумал об этом :( – Tsuna

ответ

0

Попробуйте это:

... 
qr_code_image: { 
    required: true, 
    accept: "image/jpeg, image/pjpeg" 
} 
+0

accept/extension на самом деле не проблема, хотя даже требовать не получится. – Tsuna

+0

, пожалуйста, проверьте свой код на этой странице html, возможно, вы используете 'qr_code_image' как класс или id в другом элементе div (element). – Hezron

0
$(document).ready(function() { 

    $('#form').validate({ 
     ignore: [], 
     rules: { 
      city: { 
       required: true 
      }, 
      phone: { 
       required: true, 
      }, 
      qr_code_image: { 
       required: true, 
       accept: 'jpeg|png|jpeg' 
      } 
     }, 
     // Where to place the error message 
     errorPlacement: function (error, element) { 
      console.log(element); 
      error.appendTo(element.next('.errorMsg')); 
     } 
    }); 

}); 

добавить ignore:[] поле опций может исправить problem.I также столкнулись с подобной проблемой, делая это исправили проблему.

+0

не повезло :(что делает поле ignore? и дни просто становятся более странными ... accept field не позволит мне принять другое формат – Tsuna