évaluation d'un formulaire.
Salut à tous!
Je suis en train de coder un script assez complet de vérification lors du choix d'un nom d'utilisateur et j'ai un problème au niveau de ma requête AJAX.
Regardez la tite vidéo si jamais:
http://www.youtube.com/watch?v=9owt8HnO4dI
Voilà pour le javascript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| // Live check
function check_name() {
var username = $("#username").val();
if(username.length > 5) {
$("#availability_status").html('<?php echo $strAvChk; ?>'); // Loader
jQuery.ajax({
type: "POST",
url: '/inc/check_chain.php', // contrôle des caractères
data: "c="+ username +"&st=5",
global: false, // et voilà, résolu ^^
cache: false,
success: function(response) {
if(response == 0) {
jQuery.ajax({
type: "POST",
url: "/inc/usr_chk.php", // contrôle dans bdd
data: "u="+ username,
cache: false,
success: function(server_response){
$("#availability_status").ajaxComplete(function(event, request){
if(server_response == 1){
usrnm = 0; // validation usrnm = 1, ok, usrnm = 0, pas ok
$("#availability_status").html('<?php echo $strAvNo; ?>'); // affichage NON
} else {
usrnm = 1; // validation usrnm = 1, ok, usrnm = 0, pas ok
$("#availability_status").html('<?php echo $strAvOk; ?>'); // affichage OK
}
});
}
});
} else {
usrnm = 0; // validation usrnm = 1, ok, usrnm = 0, pas ok
$("#availability_status").html('<?php echo $strAvNo; ?>'); // affichage NON
}
}
});
} else {
usrnm = 0; // validation usrnm = 1, ok, usrnm = 0, pas ok
$("#availability_status").html('<?php echo $strAvSh; ?>'); // affichage TROP COURT
}
} |
En fait, quand l'utilisateur écrit un nom, le résultat affiché par check_name(); est correct mais seulement la première fois! Si plusieurs essais, la fonction n'affiche plus le retour correctement...
Exemple:
Un utilisateur écrit "kfa1983" dans le champ username, onBlur : le check_name(); se fait, check_chain == 1 puisque la chaine est correct et usr_chk == 1 puisque le nom n'existe pas, donc nom disponible.
Mais si l'utilisateur édite le champ username, au moment du onBlur, la requête se fait (on le voit dans firebug) mais ne met pas à jour l'affichage et les variables de validation (usrnm)....
Que faire?
Merci!!!