J'essaie de faire une vérification ajax de la disponibilité du nom d'utilisateur et de soumettre un formulaire seulement si le nom d'utilisateur est disponible.jQuery Validation - submitHandler et réponse AJAX
Utiliser le plugin jQuery Validation, j'ai mis:
submitHandler: function(form) {
if (ajaxCheck() == true){
alert('true');
}
}
Et ma fonction de vérification nom d'utilisateur ressemble à ceci:
function ajaxCheck(){
usernameVal = $("#username").val().toLowerCase();
usernameVal = usernameVal.replace(/[\s\W]/g, '');
$.post("/app/signup/username/", {
username: usernameVal
}, function(response){
if (response == "Username not available.") {
$("#signup").validate().showErrors({ "username" : "Username Not Available." });
alert('false');
return false;
} else {
alert('true');
return true;
}
});
}
Le problème est qu'il ne revient pas vrai ou faux au soumissionner. Je ne suis pas sûr si c'est parce que les déclarations de retour sont dans le $ .post?
Si j'exécute l'ajaxCheck de manière indépendante, il alertera false et true en fonction de la disponibilité, il ne renvoie simplement false/true s'il est appelé depuis submitHandler.
Toute idée appréciée.
je pense que la méthode obtient avant qu'il retourne complets une valeur car il est appel asyncronous, je suis sûr à 90% sur ce ... – kobe