jQuery EasyUI常用数据验证汇总
easyui的validatebox()提供了自定义验证的方法,为此我把一些常用的数据验证汇总了一下,代码如下
$.extend($.fn.validatebox.defaults.rules,{
CHS:{
validator:function(value,param){
return/^[\u0391-\uFFE5]+$/.test(value);
},
message:'请输入汉字'
},
ZIP:{
validator:function(value,param){
return/^[1-9]\d{5}$/.test(value);
},
message:'邮政编码不存在'
},
QQ:{
validator:function(value,param){
return/^[1-9]\d{4,10}$/.test(value);
},
message:'QQ号码不正确'
},
mobile:{
validator:function(value,param){
return/^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/.test(value);
},
message:'手机号码不正确'
},
loginName:{
validator:function(value,param){
return/^[\u0391-\uFFE5\w]+$/.test(value);
},
message:'登录名称只允许汉字、英文字母、数字及下划线。'
},
safepass:{
validator:function(value,param){
returnsafePassword(value);
},
message:'密码由字母和数字组成,至少6位'
},
equalTo:{
validator:function(value,param){
returnvalue==$(param[0]).val();
},
message:'两次输入的字符不一至'
},
number:{
validator:function(value,param){
return/^\d+$/.test(value);
},
message:'请输入数字'
},
idcard:{
validator:function(value,param){
returnidCard(value);
},
message:'请输入正确的身份证号码'
}
});
/*密码由字母和数字组成,至少6位*/
varsafePassword=function(value){
return!(/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/.test(value));
}
varidCard=function(value){
if(value.length==18&&18!=value.length)returnfalse;
varnumber=value.toLowerCase();
vard,sum=0,v='10x98765432',w=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],a='11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91';
varre=number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/);
if(re==null||a.indexOf(re[1])<0)returnfalse;
if(re[2].length==9){
number=number.substr(0,6)+'19'+number.substr(6);
d=['19'+re[4],re[5],re[6]].join('-');
}elsed=[re[9],re[10],re[11]].join('-');
if(!isDateTime.call(d,'yyyy-MM-dd'))returnfalse;
for(vari=0;i<17;i++)sum+=number.charAt(i)*w[i];
return(re[2].length==9||number.charAt(17)==v.charAt(sum%11));
}
varisDateTime=function(format,reObj){
format=format||'yyyy-MM-dd';
varinput=this,o={},d=newDate();
varf1=format.split(/[^a-z]+/gi),f2=input.split(/\D+/g),f3=format.split(/[a-z]+/gi),f4=input.split(/\d+/g);
varlen=f1.length,len1=f3.length;
if(len!=f2.length||len1!=f4.length)returnfalse;
for(vari=0;i<len1;i++)if(f3[i]!=f4[i])returnfalse;
for(vari=0;i<len;i++)o[f1[i]]=f2[i];
o.yyyy=s(o.yyyy,o.yy,d.getFullYear(),9999,4);
o.MM=s(o.MM,o.M,d.getMonth()+1,12);
o.dd=s(o.dd,o.d,d.getDate(),31);
o.hh=s(o.hh,o.h,d.getHours(),24);
o.mm=s(o.mm,o.m,d.getMinutes());
o.ss=s(o.ss,o.s,d.getSeconds());
o.ms=s(o.ms,o.ms,d.getMilliseconds(),999,3);
if(o.yyyy+o.MM+o.dd+o.hh+o.mm+o.ss+o.ms<0)returnfalse;
if(o.yyyy<100)o.yyyy+=(o.yyyy>30?1900:2000);
d=newDate(o.yyyy,o.MM-1,o.dd,o.hh,o.mm,o.ss,o.ms);
varreVal=d.getFullYear()==o.yyyy&&d.getMonth()+1==o.MM&&d.getDate()==o.dd&&d.getHours()==o.hh&&d.getMinutes()==o.mm&&d.getSeconds()==o.ss&&d.getMilliseconds()==o.ms;
returnreVal&&reObj?d:reVal;
functions(s1,s2,s3,s4,s5){
s4=s4||60,s5=s5||2;
varreVal=s3;
if(s1!=undefined&&s1!=''||!isNaN(s1))reVal=s1*1;
if(s2!=undefined&&s2!=''&&!isNaN(s2))reVal=s2*1;
return(reVal==s1&&s1.length!=s5||reVal>s4)?-10000:reVal;
}
};
页面中要引入jquery.js和easyui.min.js
html代码中使用如下
<tableclass="grid"id="uiform"> <tr><td>登录名:</td><td><inputrequired="true"id="txtUsername"type="text"class="txt03"/></td><td>真实姓名:</td><td><inputid="txtTruename"validType="CHS"required="true"type="text"class="txt03"/></td></tr> <tr><td>登录密码:</td><td><inputvalidType="safepass"required="true"id="txtPassword"name="password"type="password"class="txt03"/></td><td>Email:</td><td><inputid="txtEmail"name="email"validType="email"type="text"class="txt03"/></td></tr> <tr><td>身份证号:</td><td><inputvalidType="idcard"id="txtIdcard"name="idcard"type="text"class="txt03"/></td><td>QQ:</td><td><inputvalidType="QQ"id="txtQq"name="qq"type="text"class="txt03"/></td></tr> <tr><td>手机:</td><td><inputvalidType="mobile"id="txtMobile"name="mobile"type="text"class="txt03"/></td><td>电话:</td><td><inputid="txtTel"name="tel"type="text"class="txt03"/></td></tr> <tr><td>家庭住址:</td><tdcolspan="3"><inputvalidType="equalTo[txtMobile]"style="width:80%"id="txtHomeaddr"name="homeaddr"type="text"class="txt03"/></td></tr> <tr><td>备注:</td><tdcolspan="3"><inputtype="text"style="width:80%"class="txt03"id="txtRemark"></textarea></td></tr> <tr><td> </td><tdcolspan="3"><inputid="Checkbox1"type="checkbox"/><label>超级管理员</label> <inputid="Checkbox2"type="checkbox"/><label>禁用</label></td></tr> </table>
这一段JS是必不可少的
$(function(){
$('#uiforminput').each(function(){
if($(this).attr('required')||$(this).attr('validType'))
$(this).validatebox();
})
});
这样就ok了
如果在提交时验证表单有没有通过验证,则可使用下面的代码
varflag=true;
$('#uiforminput').each(function(){
if($(this).attr('required')||$(this).attr('validType')){
if(!$(this).validatebox('isValid')){
flag=false;
return;
}
}
})
if(flag)
alert('验证通过!');
else
alert('验证失败!');
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。