我创建了一个自定义验证规则(uniqueUserName)。我遇到的问题是,即使从自定义验证方法返回true,也会为自定义规则提供错误消息。
我试图验证的表单是动态加载并添加到div。
这是我添加方法并定义验证规则的地方。在加载页面之后但在attacheValidation之前调用addValMethod:
function addValMeth(){
$.validator.addMethod("uniqueUserName", function(value, element) {
$.get("databasescripts/validate_username.php", {username: value}, function(data2){
alert("Validate-> " + data2);
if(data2 == "1"){
alert("Validate 2");
return true;
}else if(data2 == "0"){
alert("Validate 3");
return false;
}
});
});
};
function attacheValidation($form){
$($form).validate({
rules: {
firstname: "required",// simple rule, converted to {required:true}
surname: "required",
address: "required",
zipcode: "required",
city: "required",
email: {
required: true,
email: true
},
username: {
uniqueUserName: true,
required: true
}
},
messages: {
firstname: "Förnamn saknas" ,
surname: "Efternamn saknas",
address: "Adress saknas",
zipcode: "Postkod saknas",
city: "Ort saknas",
companyname: "Företagsnamn saknas",
email: "Korrekt emailadress saknas",
username: {
uniqueUserName: "Användarnamnet är upptaget",
required: "Användarnamn saknas"
}
}
});
};
警报证明自定义验证器中的逻辑可以正常工作。所有其他验证规则都正常工作。
我不知道它是否相关,但每次返回true结果时,都会请求两次自定义验证方法。如果为false,则只对方法发出一次请求。
这是我想要应用自定义验证方法的用户名字段。
答案 0 :(得分:0)
一个人必须返回“true”并返回“false”。它期望字符串不是布尔值。