カスタム検証ルール(uniqueUserName)を作成しました。私が抱えている問題は、カスタム検証メソッドからtrueを返すときでも、エラーメッセージが常にカスタムルールに対して提示されるということです。JQueryカスタムvaldiation、trueの場合でもエラーメッセージが表示されます
私が検証しようとしているフォームは動的に読み込まれ、divに追加されます。
ここでは、メソッドを追加し、検証ルールを定義します。 addValMethodは、ページがロードされた後に呼び出されますがattacheValidation前にされています
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"
}
}
});
};
アラートは、カスタムバリデータ内のロジックは、それが必要として働いて証明しています。他のすべての検証ルールは適切に機能します。
関連があるかどうかわかりませんが、真の結果が返されるたびに、カスタム検証メソッドが2回要求されます。 falseの場合、メソッドへの要求は1回だけ行われます。
これはユーザー名フィールドです。私はカスタム検証メソッドを適用したいと思います。