J'ai plusieurs objets. Avant de soumettre un formulaire, je veux vérifier pour être sûr que toutes les valeurs d'objet sont "ok".

$("#sub_button").click(function() {
    if (myObj.login_id && myObj.email == "ok")  {
        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);
    } else {
        alert("the form is bad!");
    }
});

Je l'ai essayé avec deux == et trois ===, cela ne fonctionne toujours pas. Le myObj.login_id ou myObj.email peut être égal à TOUT et il affiche toujours l'alerte "Cela soumettrait le formulaire" et montre dans la boîte d'alerte que la ou les valeurs ne sont PAS "correctes".

Qu'est-ce que je fais mal?

1
Oseer 3 oct. 2011 à 20:04

5 réponses

Meilleure réponse

Tu devrais faire:

("#sub_button").click(function() {

    if (myObj.login_id === "ok" && myObj.email === "ok")  {

        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);
else {

        alert("the form is bad!");

Dans votre code, vous vérifiez simplement que myObj.login_id se résout à vrai (ce qui arrive à chaque fois que la valeur myObj.login_id n'est pas dans cette liste)

  • faux
  • nulle
  • indéfinie
  • La chaîne vide ''
  • Le chiffre 0
  • Le nombre NaN (yep, 'Not a Number' est un nombre, c'est un nombre spécial)
1
Nicola Peluchetti 3 oct. 2011 à 16:06

Ce n'est pas comparer ce que vous pensez que c'est comparer. Lorsque vous lisez ceci à haute voix, cela sonne bien: "si l'identifiant de connexion et l'e-mail sont égaux à OK", mais ce n'est pas ainsi que fonctionne &&. Tu veux:

if (myObj.login_id == "ok" && myObj.email == "ok") {
   ....
}

Le code que vous avez écrit indique en fait "si l'identifiant de connexion est quelque chose du tout, et si l'e-mail est" ok "".

4
Ben Zotto 3 oct. 2011 à 16:08

(myObj.login_id && myObj.email == "ok") sera évalué comme vrai si myObj.email == "ok" et myObj.login_id ont une valeur non nulle. Vous n'évaluez pas le contenu de login_id à quoi que ce soit, donc il sera traité comme un booléen et converti en tel en fonction du contenu.

Vous devez le changer en (myObj.login_id == "ok" && myObj.email == "ok").

0
CodeCaster 3 oct. 2011 à 18:08

Essaye ça

$("#sub_button").click(function() {

    if (myObj.login_id == "ok" && myObj.email == "ok")  {

        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);

    } else {

        alert("the form is bad!");
0
enloz 3 oct. 2011 à 16:08
$("#sub_button").click(function() {
    if (myObj.login_id == "ok" && myObj.email == "ok")  {
        alert("This would submit the form. login ID obj is: "+myObj.login_id+" and email email obj is: "+myObj.email);
    } else {
        alert("the form is bad!");
    }
});
2
John Keyes 3 oct. 2011 à 16:47
7637547