下面是我使用过的jquery的双重验证源代码,欢迎大家参考。
jQuery("#pateintForm").validate({
displayType: "pop",
rules: {
officialID: {
required:true,
remote:{ //official ID 的双重验证:1、验证必填 2、验证不重复
type: "GET",
url: "${ctx}/patient/checkDuplicate.do",
async: false,
data: {
officialID:function(){
return $("#officialID").val();
},
officialIDType:function(){
return document.getElementById("officialIDType.id").value;
//return $("#officialIDType.id").val();
},
id:function(){
return $("#id").val();
},
clinicId:function(){
return $("#hideClinicId").val();
}
},
dataType: 'text/xml',
success:function(data){
var d = parseInt(data); //需要使用ajax去数据库查询,然后返回0(不重复)和1(重复).
var validator = $("#pateintForm").data('validator');
var element = $('#officialID').get(0);
var previous = validator.previousValue(element);
var valid = false;
if(d != 1) {
valid = true;
}else{
valid = false;
}
if (valid) {
var submitted = validator.formSubmitted;
validator.prepareElement(element);
validator.formSubmitted = submitted;
validator.successList.push(element);
validator.showErrors();
} else {
var errors = {};
// response 换成 valid
var message = (previous.message = valid || validator.defaultMessage( element, "remote" ));
errors[element.name] = $.isFunction(message) ? message(value) : message;
validator.showErrors(errors);
}
previous.valid = valid;
validator.stopRequest(element, valid);
}
}
},
lastNameEN:{required:true},
lastNameCN :{chineseCharater:true},
givenNameCN:{chineseCharater:true},
dob:{required:true},
gender:{required:true},
homeTel :{number:true},
mobileTel :{number:true,required: true},
officeTel :{number:true},
email :{email:true},
'kin1.contactNo':{number:true},
'kin2.contactNo':{number:true},
'kin3.contactNo':{number:true},
'kin4.contactNo':{number:true},
givenNameEN : {required: true},
medicalCardNumber:{formatCheck: true}
},
messages: {
officialID: {required: " <spring:message code='PRM001_ERR_016'/> ", //显示的是国际化的内容。这里可以自己写提示内容
remote: " <spring:message code='err.create.patient'/> "},
medicalCardNumber:{remote: " <spring:message code='err.medical.card.number'/> "},//这里就是第二个验证的提示了
lastNameEN :{required:" <spring:message code='PRM001_ERR_018'/> "},
lastNameCN :{chineseCharater:" <spring:message code='PRM001_ERR_021'/> "},
givenNameCN :{chineseCharater:" <spring:message code='PRM001_ERR_021'/> "},
dob:{required:" <spring:message code='PRM001_ERR_015'/> "},
gender:{required:" <spring:message code='PRM001_ERR_014'/> "},
homeTel :{number:" <spring:message code='PRM001_ERR_003'/> "},
mobileTel :{number:" <spring:message code='PRM001_ERR_006'/> ",
required:" <spring:message code='err.mobile.tel'/> "},
officeTel :{number:" <spring:message code='PRM001_ERR_007'/> "},
'kin1.contactNo':{number:" <spring:message code='PRM001_ERR_011'/> "},
'kin2.contactNo':{number:" <spring:message code='PRM001_ERR_011'/> "},
'kin3.contactNo':{number:" <spring:message code='PRM001_ERR_011'/> "},
'kin4.contactNo':{number:" <spring:message code='PRM001_ERR_011'/> "},
email :{email:" <spring:message code='PRM001_ERR_010'/> "},
givenNameEN:{required:" <spring:message code='PRM001_ERR_019'/> "}
}
});