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
