如何在jQuery Validate中“不需要”输入此文件?

时间:2016-02-11 11:08:19

标签: jquery jquery-validate

我有一个包含文件输入元素的表单。我没有将其要求设置为真。它仍然告诉我选择一个文件。消息显示“此字段是必需的”。我不希望jquery验证它。这就是我所做的。

jQuery验证规则和消息:

$.validator.addMethod("file_size_validator", function(value, element) {

    var flag;
    if($(element)[0].files[0].size > 2048000 || $(element)[0].files[1].size > 2048000 || $(element)[0].files[2].size > 2048000){
      flag = false;
    } else{
      flag = true;
    }

   return flag;
  }, "Any file's size should not exceed 2MB");


img: {
        extension: "png|jpg|jpeg",
        file_size_validator: true,
      },

img: {
        extension: 'File should of jpg or jpeg or png extension',
      },


<div class="row">
                <div class="form-group col-md-2">
                    <label style="padding-left:20px;padding-top:10px">Upload images<strong> (Upto 3 images only)<strong></label>
                </div>
                <div class="form-group col-md-4">
                    <input class="form-control" type="file" name="files[]" id="uploaded_files" required="required" multiple>
                </div>
</div>

当我输入文件时;它工作正常。它验证文件。但是,当我不选择任何文件。然后它不应该验证此元素,但它仍然验证输入文件元素。如果我提供“required:false”作为img的规则,它甚至不起作用。请帮忙。

1 个答案:

答案 0 :(得分:2)

  

我有一个包含文件输入元素的表单。我没有将其要求设置为真。不过,它告诉我选择一个文件。

那是因为您在HTML中有required属性...

<input class="form-control" type="file" name="files[]" id="uploaded_files" required="required" multiple>

删除required="required"属性。

如果满足以下任何一项,jQuery Validate插件会将字段设置为required ...

  • 您已在required方法的rules对象中的字段上声明.validate()规则。

  • 您已在required方法中的字段上声明.rules()规则。

  • 您在字段元素上有一个required类。

  • 您在字段元素上有required属性。

  • 您已使用required方法创建了包含jQuery.validator.addClassRules()规则的复合规则,并将此类分配给字段元素。