Я создал пользовательское правило проверки (uniqueUserName).Проблема, с которой я сталкиваюсь, заключается в том, что сообщение об ошибке всегда отображается для пользовательского правила, даже когда возвращается значение true из пользовательского метода проверки.
Форма, которую я пытаюсь проверить, загружается динамически и добавляется в div.
Здесь я добавляю метод и определяю правила проверки.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"
}
}
});
};
Предупреждения подтверждают, что логика в пользовательском валидаторе работает должным образом.Все остальные правила проверки работают правильно.
Я не знаю, может ли это быть связано, но каждый раз, когда возвращается истинный результат, пользовательский метод проверки запрашивается два раза.Когда оно ложно, запрос к методу делается только один раз.
Это поле имени пользователя, к которому я хочу применить пользовательский метод проверки.