jQuery插件之validation插件

2020-05-24 21:27:59易采站长站整理

以验证手机号为例,手机号一般是11位,前3位是号段,后8位一般没有限制。而且,在手机开头很可能有0或+86


//开头
(0|+86)?
//前3位
13d|14[579]|15[0-35-9]|17[0135-8]|18d
//后8位
d{8}
//手机号码
var phone = /^(0|+86)?(13d|14[579]|15[0-35-9]|17[0135-8]|18d)d{8}$/;


$.validator.addMethod({
'phone',
function(value,element,param){
var reg = /^(0|+86)?(13d|14[579]|15[0-35-9]|17[0135-8]|18d)d{8}$/;
return value.test(reg);
},
'请输入正确的手机号码'
})


<style>
label.error{margin-left:6px;padding-left:14px;color:red;background: no-repeat 0 4px;background-image:url('data:image/gif;base64,R0lGODlhDgAOAMQAAOpSAPWpgPvf0O5zMPGIUPe+n////+tdEPjJsP718POecO1oIPrUwPzq4Pa0kPKTYPSof////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUUABEALAAAAAAOAA4AAAVcYCQm0AAAA5SIbHGcMHAULazEJ528AGIsgADDIUsEYAYDopBsAAOmXDLpOkVPB0ETFxskpjeY6fD4GhrJBAF1zCYDBx/jFYi8DoEH9yAqcGM0fTwxMywsUFZ1LCEAOw==');}
</style>
<form id="demoForm">
<p>
<label for="phone">手机号码:</label>
<input type="text" id="phone" name="phone" />
</p>
<p>
<input type="button" value="提交">
</p>
</form>
<script>
$.validator.addMethod(
'phone',
function(value,element,param){
var reg = /^(0|+86)?(13d|14[579]|15[0-35-9]|17[0135-8]|18d)d{8}$/;
return reg.test(value);
},
'请输入正确的手机号码'
);
$('#demoForm').validate({
rules:{
phone:{
required: true,
phone:true
}
},
messages:{
phone:{
required:"请输入手机号码"
}
}
})
</script>

修改触发方式

下面的虽然是 boolean 型的,但建议除非要改为 false,否则别乱添加


触发方式      类型   描述                         默认值
onsubmit     Boolean 提交时验证。设置为 false 就用其他方法去验证     true
onfocusout    Boolean 失去焦点时验证(不包括复选框/单选按钮)         true
onkeyup     Boolean 在 keyup 时验证。                   true
onclick     Boolean 在点击复选框和单选按钮时验证              true
focusInvalid  Boolean 提交表单后,未通过验证的表单会获得焦点          true
focusCleanup  Boolean 如果是true,当未通过验证的元素获得焦点时,移除错误提示 false