jQuery $.post() en mode async ?
Bonjour,
J'ai trouvé dans un tuto que l'utilisation de $.post était mieux que $.ajax en mode POST.
J'ai donc fait ceci :
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
| $('#adminSubmit').click(function() {
var valid = true;
$('label[for="adminName"] span').remove();
$('#adminName, #adminPassword').removeClass('input-error');
if(!$('#adminName').val() || !$('#adminPassword').val()) {
$('label[for="adminName"]').append('<span class="error">*****</span>');
$('#adminName, #adminPassword').addClass('input-error');
valid = false;
} else {
$.post(
ajaxPath,
{
adminName : $("#adminName").val(),
adminPassword : $("#adminPassword").val()
},
function(data) {
if(data != 'The login matches the password, access to Administration section granted.') {
$('label[for="adminName"]').append('<span class="error">*****</span>');
$('#adminName, #adminPassword').addClass('input-error');
valid = false;
}
}
);
}
return valid;
}); |
Mon appel AJAX fonctionne bien, l'affichage du message d'erreur aussi (je le vois quand j'initialise valid = false; ). En effet, si j'ajoute un alert(valid); juste avant return valid; il m'affiche true alors qu'il devrait être false. J'ai l'impression qu'il ne laisse pas le temps de changer de valeur qu'il passe au reste.
Enfin je crois car je ne comprends pas l'erreur là et surtout je ne vois pas d'option telle que async = false;
Avez-vous une idée de l'erreur ?
Merci d'avance pour votre aide.