$(function(){ /*************************可直接调用的校验方法***************************/ //不为空函数 notNull = function(id, msg){ $('#'+id).validatebox({ required: true, missingMessage: msg }); } //重复函数 reapet = function(id, re_id, msg){ id = '#'+id; $('#'+re_id).validatebox({ validType: "reapet['"+id+"','"+msg+"']" }); }; //数字 number = function(id, msg){ $('#'+id).validatebox({ validType: 'number["'+msg+'"]' }); }; //手机号码 cellPhone = function(id, msg){ $('#'+id).validatebox({ validType: 'cellPhone["'+msg+'"]' }); }; //电话号码 phone = function(id, msg){ $('#'+id).validatebox({ validType: 'phone["'+msg+'"]' }); }; //邮箱 email = function(id,msg){ $('#'+id).validatebox({ validType: 'email', invalidMessage: msg }); }; //url url = function(id, msg){ $('#'+id).validatebox({ validType: 'url', invalidMessage: msg }); }; //ip ip = function(id, msg){ $('#'+id).validatebox({ validType: 'ip["'+msg+'"]' }); }; /** * 提交后台进行唯一性校验 * @param id:校验元素的id,url: 提交的地址,paramName: 传入值的参数名称 */ unique = function(id, url, paramName){ $('#'+id).validatebox({ validType: 'unique["'+url+'","'+id+'","'+paramName+'"]' }); }; //提交,数据无效时阻止提交 form = function(id, url){ $("#"+id).form({ url: url, onSubmit: function(){ return $(this).form('validate'); }, success: function(data){ alert(data); } }); }; /*************************不为空校验 required="true"********************************/ //在HMTL标签中加入required="true"可进行不能为空校验 $("*").each(function(){ if($(this).attr('required')){ $(this).validatebox({ required: true, missingMessage: '不能为空' }); } }); //当使用struts标签时,加入属性required="true"能过下面代码实现不能为空校验 //注意:struts标签需用label $('span').each(function(){ //遍历所有span标签,检验是否设有class="required" if($(this).attr('class')=='required'){ $("#"+$(this).parent().attr('for')).validatebox({ required: true, missingMessage: '不能为空' }); } }); /*************************自定义方法********************************/ /** *自定义的校验方法(校验两次密码是否相同) * @param param为传入第一次输入的密码框的id * @call repeat['#id'] */ $.extend($.fn.validatebox.defaults.rules,{ reapet: { validator: function(value, param){ var pwd = $(param[0]).attr('value'); if(pwd != value){ return false; } return true; }, message: '{1}' } }); //利用正则进行数字校验 $.extend($.fn.validatebox.defaults.rules, { number: { validator: function(value, param){ return /^-?(?:/d+|/d{1,3}(?:,/d{3})+)(?:/./d+)?$/.test(value); }, message: '{0}' } }); //手机号 $.extend($.fn.validatebox.defaults.rules,{ cellPhone: { validator: function(value, param){ return /^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/.test(value); }, message: '{0}' } }); /** * 电话号码 * 匹配格式:11位手机号码 * 3-4位区号,7-8位直播号码,1-4位分机号 * 如:12345678901、1234-12345678-1234 */ $.extend($.fn.validatebox.defaults.rules,{ phone: { validator: function(value, param){ return /(/d{11})|^((/d{7,8})|(/d{4}|/d{3})-(/d{7,8})|(/d{4}|/d{3})-(/d{7,8})-(/d{4}|/d{3}|/d{2}|/d{1})|(/d{7,8})-(/d{4}|/d{3}|/d{2}|/d{1}))$/.test(value); }, message: '{0}' } }); //ip校验 $.extend($.fn.validatebox.defaults.rules,{ ip: { validator: function(value, param){ return /^((2[0-4]/d|25[0-5]|[01]?/d/d?)/.){3}(2[0-4]/d|25[0-5]|[01]?/d/d?)$/.test(value); }, message: '{0}' } }); //唯一性校验 $.extend($.fn.validatebox.defaults.rules,{ unique: { validator: function(value, param){ value = $('#'+param[1]).attr('value'); $('#'+param[1]).load(param[0]+"?"+param[2]+"="+value, function(responseText, textStatus, XMLHttpRequest){ if(responseText) //后台返回true或者false return true; }); return false; }, message: '用户名已存在' } }); });
$(function(){ notNull('age','年龄不能为空'); reapet('password','repassword','两次输入不相同'); number('age','只能为数字'); cellPhone('phone','手机号格式不正确'); phone('phone','电话号码格式不正确'); email('email','邮箱格式不正确'); unique('username','unique.html','name'); form('form','user_regist.html'); });