JQuery проверить загрузку файла - PullRequest
27 голосов
/ 02 июня 2011

Я пытаюсь проверить загрузку файла HTML с помощью jQuery Validate

Я обнаружил, что могу использовать мета-параметр, например:

$("#myform").validate({
   meta: "validate"
})

<input type="file" name="upload" class="{validate:{required:true,accept:'docx?|pdf'}}" />

Но, похоже, он не работает.В любом случае мне нужно добавить класс required.Тогда проверка типа файла тоже не сработает конечно.Нужно ли делать что-то дополнительное?

Ответы [ 3 ]

65 голосов
/ 08 сентября 2011

Если вы хотите использовать validate в jQuery для проверки размера файла, вы можете сделать это, выполнив следующие действия:

1 - загрузить файл дополнительных методов

<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/additional-methods.min.js"></script>

2 - добавить пользовательский метод для проверки размера файла

$.validator.addMethod('filesize', function(value, element, param) {
    // param = size (in bytes) 
    // element = element to validate (<input>)
    // value = value of the element (file name)
    return this.optional(element) || (element.files[0].size <= param) 
});

3 - использовать вновь добавленный метод в качестве правила проверки для подтверждения ввода:

$('#formid').validate({
    rules: { inputimage: { required: true, extension: "png|jpe?g|gif", filesize: 1048576  }},
    messages: { inputimage: "File must be JPG, GIF or PNG, less than 1MB" }
});

Примечание: использование правила проверки «принять» вместо «расширения» приводит к сообщениям об ошибках типа MIME при загрузке файла с пустым типом файла.

9 голосов
/ 05 апреля 2014

Вы можете добавить метод проверки для выполнения

    jQuery.validator.addMethod("uploadFile", function (val, element) {

          var size = element.files[0].size;
            console.log(size);

           if (size > 1048576)// checks the file more than 1 MB
           {
               console.log("returning false");
                return false;
           } else {
               console.log("returning true");
               return true;
           }

      }, "File type error");

И используйте это так -

      $(document).ready(function(){
              $('#quote_form').validate({
      rules: {
           image: {
              required: true,
              extension:'jpe?g,png',
              uploadFile:true,
              }
             }
          });
       });

Я надеюсь, что это поможет вам ..

2 голосов
/ 10 июня 2011

Вы читали и пробовали это так: http://docs.jquery.com/Plugins/Validation/Methods/accept#extension?

Я имею в виду, что вместо того, чтобы добавлять правила валидации в класс, вы пытались просто мгновенно добавить их в валидацию init?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...