jQuery Validate插件添加自定义验证
2017-12-19 20:44
826 查看
jQuery Validate提供的默认验证有时不能满足需求,可以通过添加自定义验证方式完成验证,方式如下:
$.validator.addMethod(rule, function(value, element, param) {...}),
value:表单的值,文件类型时是文件名
element:验证的元素
param:验证规则的值
建议将验证规则写在 additional-methods.js文件中
注:
默认提供的验证规则里有:accept,是对文件的MIME进行验证,使用时需要引入additional-method.js即可使用
accept: 输入拥有合法后缀名的字符串
1.验证的表单
使用正则去匹配文件名
<script type="text/javascript" src="script/jquery-validate/jquery.validate.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/messages_zh.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/additional-methods.min.js"></script>
1.js
导入additional-methods.min.js库,其余同上
<script type="text/javascript" src="script/jquery-validate/jquery.validate.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/messages_zh.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/additional-methods.min.js"></script>
<script type="text/javascript">
$(function() {
...
$("#myForm").validate({
rules: {
upload: {
required: true,
accept: "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}
},
messages:
upload: {
required: "用户不能为空",
accept: "不支持的文件类型"
}
}
});
});
</script>2.注:
(1).excel文件的MIME
xls:application/vnd.ms-excel
xlsx:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(2).word
doc:application/msword
docx:application/vnd.openxmlformats-officedocument.wordprocessingml.document
(3).powerpoint
ppt:application/vnd.ms-powerpoint
pptx:application/vnd.openxmlformats-officedocument.presentationml.presentation
$.validator.addMethod(rule, function(value, element, param) {...}),
value:表单的值,文件类型时是文件名
element:验证的元素
param:验证规则的值
建议将验证规则写在 additional-methods.js文件中
注:
默认提供的验证规则里有:accept,是对文件的MIME进行验证,使用时需要引入additional-method.js即可使用
accept: 输入拥有合法后缀名的字符串
一.示例
自定义验证上传文件后缀示例(通过文件后缀方式验证):1.验证的表单
<form id="myForm" method="post" enctype="multipart/form-data"> <input type="file" id="upload" name="upload"> </form>2.js
使用正则去匹配文件名
<script type="text/javascript" src="script/jquery-validate/jquery.validate.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/messages_zh.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/additional-methods.min.js"></script>
$(function() { $.validator.setDefaults({ submitHandler: function(form) { // 处理验证通过 ... } }); $("#myForm").validate({ rules: { upload: { required: true, suffix: "xls,xlsx" }, }, messages: { upload: { required: "请选择文件", suffix: "不支持的文件类型" }, } }); // 扩展验证(文件后缀) $.validator.addMethod("suffix", function(value, element, param) { var regStr = '^.+\.(' + param.replace(/,/g, '|') +')$'; return this.optional(element) || (new RegExp(regStr, 'i').test(value)); }, "不支持的文件类型"); });
二.使用accept规则验证文件类型
验证excel类型的文件,accept规则接受的是文件的MIME,多个文件类型使用','隔开1.js
导入additional-methods.min.js库,其余同上
<script type="text/javascript" src="script/jquery-validate/jquery.validate.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/messages_zh.min.js"></script>
<script type="text/javascript" src="script/jquery-validate/additional-methods.min.js"></script>
<script type="text/javascript">
$(function() {
...
$("#myForm").validate({
rules: {
upload: {
required: true,
accept: "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}
},
messages:
upload: {
required: "用户不能为空",
accept: "不支持的文件类型"
}
}
});
});
</script>2.注:
(1).excel文件的MIME
xls:application/vnd.ms-excel
xlsx:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(2).word
doc:application/msword
docx:application/vnd.openxmlformats-officedocument.wordprocessingml.document
(3).powerpoint
ppt:application/vnd.ms-powerpoint
pptx:application/vnd.openxmlformats-officedocument.presentationml.presentation
三.常用验证
// 手机验证 //扩展验证(手机号) $.validator.addMethod("phone", function(value, element) { var phone = /^1(3|4|5|7|8)\d{9}$/; return this.optional(element) || (phone.test(value)); }, "请正确输入您的手机号"); // 邮箱验证 $.validator.addMethod("email", function(value, element) { var email = /^[a-z0-9]+@([a-z0-9]+\.)+[a-z]{2,4}$/i; return this.optional(element) || (email.test(value)); }, "请正确填写您的邮箱"); // 邮政编码验证 $.validator.addMethod("postcode", function(value, element) { var postcode= /^[1-9]\\d{5}$/; return this.optional(element) || (postcode.test(value)); }, "请正确填写您的邮政编码"); // 文件后缀验证(验证规则(多个文件类型以','隔开): fileSuffix: "xls,xlsx") $.validator.addMethod("fileSuffix", function(value, element, params) { var regStr = '^.+\.(' + params.replace(/,/g, '|') +')$'; return this.optional(element) || (new RegExp(regStr, 'i').test(value)); }, "不受支持的文件类型"); // 文件大小验证 $.validator.addMethod("fileMaxSize", function(value, element, params) { var fileSize = element.files[0].size;// 文件大小 return this.optional(element) || (fileSize <= params); }, "文件太大");
相关文章推荐
- JQuery扩展插件Validate 5添加自定义验证方法
- JQuery扩展插件Validate 5添加自定义验证方法
- JQuery扩展插件Validate 5添加自定义验证方法
- jQuery Validate 表单验证插件----自定义校验结果样式
- jQuery:validate添加自定义验证
- jQuery插件Validate实现自定义表单验证
- jQuery插件Validate实现自定义表单验证
- jquery验证插件validate自定义扩展
- jquery validate添加自定义验证规则(验证邮箱 邮政编码)
- jquery validate添加自定义验证规则(验证邮箱 邮政编码)
- jQuery Validate添加自定义验证方法
- Jquery validate插件自定义验证规则
- Jquery-validate验证插件自定义验证方法
- jQuery Validate表单验证插件 添加class属性形式的校验
- JQuery扩展插件Validate—5添加自定义验证方法
- 使用jquery.validate.min.js插件进行表单验证并自定义校验规则
- jQuery Validate 插件验证,,返回不同信息(json remote)自定义
- jquery validate添加自定义开始结束日期验证
- JQuery扩展插件Validate—5添加自定义验证方法
- jquery validate 插件动态添加删除验证规则