J'ai un problème avec Javascript qui exécute les choses dans un ordre qui n'a pas de sens pour moi.Javascript Order Of Execution Problème
Ce qui se passe est la suivante
var bValid = false;
alert(bValid + " 1");
if(validateForm() == TRUE)
{
$.get("submit_manageUsers.php",
{action: sendAct, userID: userID},
function(responseText)
{
if(responseText == "GOOD")
{
alert("Update Successful");
bValid = true;
alert(bValid + " 2");
}
else
{
alert(responseText + "\n Update Unsuccessful");
bValid = false;
}
},
"html"
);
bvalid = true;
alert(bValid + " 3");
}
alert(bValid + " 4");
if(bValid == true)
{
//do something
}
alert(bValid + " 5");
EDIT: ajout d'un peu plus de ce qui se passe réellement dans le cas où il aide, probablement savoir comment je fais les choses!
La sortie du code ci-dessus ressemble à ceci:
faux 1
faux 2
faux 4
faux 5
true 3.
Le problème ici est que le if(bValid == true)
i s étant exécuté avant le if(validateForm() == TRUE)
, cela signifie que bValid est toujours faux.
Pourquoi cette partie du code s'exécute-t-elle avant l'autre partie?
Toute aide à ce sujet est grandement appréciée!
Quelle est la valeur de «VRAI»? – Jimmy
TRUE est ce que la fonction validateForm() devrait renvoyer pour définir la variable bValid sur TRUE. – Adam
Veuillez créer un http://jsfiddle.net/ qui produit cette sortie. Si 'TRUE' n'est pas défini, le code échouera et ne produira plus aucune sortie. Si elle est définie, la sortie sera différente. De mon point de vue, l'ordre de sortie est impossible. –