Je dois retourner vrai ou faux si une option dans un menu déroulant est sélectionnée.
Ceci est mon code:
var active = sort.attr('selected') ? return true : return false;
J'obtiens une erreur indiquant que la première return
est inattendue.
Pourquoi?
Vous ne pouvez pas affecter une instruction return à une variable. Si vous souhaitez que active
se voit attribuer la valeur true
ou false
, supprimez simplement return
s:
var active = sort.attr('selected') ? true : false;
ou peut-être mieux:
var active = sort.prop('selected');
puisque .prop
renvoie toujours true
ou false
, quel que soit l'attribut de balise initial.
Vous pouvez revenir d'un opérateur ternaire en javascript comme ceci:
return sort.attr('selected') ? true : false;
pourquoi pas juste ça?
return sort.attr('selected');
De la docs:
Syntaxe
condition ? expr1 : expr2
Paramètres
condition (ou conditions) Une expression qui a la valeur true ou false.
expr1, expr2
Expressions avec des valeurs de tout type.
Faites attention au Expressions with values of any type
., Le return xxx
n'est pas une expression.
De wikipedia:
Une expression est une construction syntaxique, elle doit être bien formée: les opérateurs autorisés doivent avoir le nombre correct d'entrées aux bons endroits, les caractères qui composent ces entrées doivent être valides, avoir un ordre clair d'opérations, etc. des symboles qui violent les règles de la syntaxe ne sont pas bien formés et ne sont pas des expressions mathématiques valides.
Donc, dans votre cas, vous pouvez utiliser:
return sort.attr('selected') ? true : false
Juste un commentaire sur votre code:
> sort.attr('selected')
semble utiliser la méthode jQuery attr , qui utilisait pour essayer de deviner ce que vous vouliez et renvoyer l'attribut ou la propriété. Je pense que dans les versions récentes, il retourne toujours l'attribut.
Quoi qu'il en soit, la présence de l'attribut sélectionné signifie uniquement que l'élément (un élément d'option?) Est l'option sélectionnée default, cela ne signifie pas qu'il s'agit de actuellement sélectionné. option. Pour cela, vous devez utiliser la méthode property (jQuery prop sélectionnée). Et puisque la propriété selected est un booléen:
> sort.attr('selected') ? true : return false;
peut simplement être:
sort.prop('selected');
ou sans jQuery:
optionElement.selected;