2011-09-29 5 views
0

Avoir un résultat unpredicted utilisant le && opérateur logique. Si je lier plus de 2 expressions, la clause if échoue. Y a-t-il une limite au nombre d'expressions qui peuvent être concaténées en utilisant &&?logique &&

  if (tTellerProN.checked && tCareProN.checked && tSalesProN.checked) { 
       $(flListEmpty).empty(); 
       $(flListEmpty).append($('<option></option>').val(0).html("Select Role")); 
       $('.fl_list1 .list4').each(function (index) { 
        $(flListEmpty).append($('<option> </option>').val(index).html($(this).text())); 
       }) 
      } 
+0

Retagged parce que '' && appartient à javascript, jQuery pas – bfavaretto

+0

Que voulez-vous dire par "échoue"? Voulez-vous dire évalue à faux? –

+0

utiliser des accolades: '(' et ')', pour grouper && opérations. – c69

Répondre

2

Non, il n'y a aucune limite. Votre expression exige que les trois valeurs sont checkedtrue, sinon elle retournera faux. L'un d'eux doit être false (ou non true), voilà pourquoi votre if est un échec.

Pour mémoire: && fait partie de la langue javascript, pas la bibliothèque jQuery.

2

Non, il n'y a pas de limite.

Cependant, en regardant votre code (le peu qu'il y a et avec de tels noms de variables descriptives utilisées), je dirais que vous voulez dire ||, pas &&.

4

&& n'est pas un opérateur jQuery, il est Javascript. jQuery est une bibliothèque qui s'appuie sur Javascript.

Je ne suis pas sûr de ce que l'** est dans votre SI statment mais ce code fonctionne:

var x = true; 
var y = true; 
var z = true; 

alert(x && y && z); // true 
alert(x && y && !z); // false 

J'alerter les valeurs de vos 3 .checked paramètres et assurez-vous qu'ils sont fixés comme prévu.