ddMethod(name,method,message)方法
参数 name 是添加的方法的名字。
参数 method 是一个函数,接收三个参数 (value,element,param) 。
value 是元素的值,element 是元素本身,param 是参数。
我们可以用 addMethod 来添加除内置的 Validation 方法之外的验证方法。比如有一个字段,只能输一个字母,范围是 a-f,写法如下:
$.validator.addMethod("af",function(value,element,params){
if(value.length>1){
return false;
}
if(value>=params[0] && value<=params[1]){
return true;
}else{
return false;
}
},"必须是一个字母,且a-f");
如果有个表单字段的 name=”username”,则在 rules 中写:
username:{
af:["a","f"]
}
addMethod 的第一个参数,是添加的验证方法的名字,这时是 af。
addMethod 的第三个参数,是自定义的错误提示,这里的提示为:”必须是一个字母,且a-f”。
addMethod 的第二个参数,是一个函数,这个比较重要,决定了用这个验证方法时的写法。
如果只有一个参数,直接写,比如 af:”a”,那么 a 就是这个唯一的参数,如果多个参数,则写在 [] 里,用逗号分开。
<script type="text/javascript"> var validator; $(function() { $.validator.addMethod("compareDate", function(value, element) { var dateStart = $("#dateStart").val(); var dateEnd = $("#dateEnd").val(); return dateStart <= dateEnd; }, "开始日期必须早于结束日期"); $.validator.addMethod("checkMedicalExist", function(value, element) { var result = true; var address = $.trim($("#address").val()); var dateStart = $("#dateStart").val(); var dateEnd = $("#dateEnd").val(); if (address == ‘‘ || dateStart == ‘‘ || dateEnd == ‘‘) { return true; } $.ajax({ type : "POST", async : false, url : "${ctx}/meeting/medical/checkMedical", data : { "address" : address, "dateStart" : dateStart, "dateEnd" : dateEnd }, dataType : ‘json‘, success : function(d) { if (d.boolStatus == true) { var date = d.data; jBox.tip(date+‘已经存在医疗地点‘); result = false; } else { result = true; } } }); return result; }, "日期有冲突" ); $.validator.addMethod("compareTime", function(value, element) { var timeStart = $("#timeStart").val(); var timeEnd = $("#timeEnd").val(); return timeStart < timeEnd; }, "开始时间必须早于结束时间"); validator = $("#inputForm") .validate( { rules : { address : { required : true }, dateStart : { required : true }, dateEnd : { required : true, compareDate : true, checkMedicalExist : true }, timeStart : { required : true, }, timeEnd : { required : true, compareTime : true }, ambulanceNum : { required : true } /* name:{required:true}, phone:{required:true} */ }, submitHandler : function(form) { $ .ajax({ type : "POST", asyn : false, url : ‘${ctx}/meeting/medical/saveMedical‘, data : $(‘#inputForm‘) .serialize(),// 要提交的表单 dataType : ‘json‘, success : function(data) { if (data.status == ‘1‘) { //parent.jBox.tip(‘保存成功‘); window.parent.window.isFreshFlag=‘2‘;//刷新父页面 parent.$.jBox.close(); } else if (data.status == ‘0‘) { if(data.boolStatus == ‘true‘){ jBox.tip(‘日期:------重复‘); }else{ jBox.tip(‘保存失败,请重试‘); } } } }); } }); }) </script>
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END