我有一个包含文件输入元素的表单。我没有将其要求设置为真。它仍然告诉我选择一个文件。消息显示“此字段是必需的”。我不希望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的规则,它甚至不起作用。请帮忙。
答案 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()
规则的复合规则,并将此类分配给字段元素。