Mah*_*ale 11 jquery jquery-validate
我正在使用jQuery validate插件,并希望在提交表单之前验证文件扩展名和文件大小.
"use strict";
$('#update_profile').validate({
rules: {
FirstName: {
required: true,
maxlength: 20
},
image: {
required: true,
extension: "jep | jpeg",
filesize : 50000,
}
}
});
Run Code Online (Sandbox Code Playgroud)
我想要类似于上面的代码.
Aru*_*hny 30
您需要编写自定义规则来验证文件大小,还必须将文件扩展名作为逗号分隔的字符串传递
$.validator.addMethod('filesize', function (value, element, param) {
return this.optional(element) || (element.files[0].size <= param)
}, 'File size must be less than {0}');
jQuery(function ($) {
"use strict";
$('#update_profile').validate({
rules: {
FirstName: {
required: true,
maxlength: 20
},
image: {
required: true,
extension: "jpg,jpeg",
filesize: 5,
}
},
});
});Run Code Online (Sandbox Code Playgroud)
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/additional-methods.js"></script>
<form id="update_profile" method="post" action="">
<input type="file" name="image" />
<input type="submit" value="Save" />
</form>Run Code Online (Sandbox Code Playgroud)
小智 8
请注意,element.files[0].size 使用字节单位。因此,如果您想使用 MB,则需要将其转换为字节。在这个例子中:
$.validator.addMethod('filesize', function (value, element, param) {
return this.optional(element) || (element.files[0].size <= param * 1000000)
}, 'File size must be less than {0} MB');
Run Code Online (Sandbox Code Playgroud)
您需要传递到您的验证中:
$('#update_profile').validate({
rules: {
FirstName: {
required: true,
maxlength: 20
},
image: {
required: true,
extension: "jep | jpeg",
filesize : 5, // here we are working with MB
}
}
});
Run Code Online (Sandbox Code Playgroud)