Quelles valeurs peuvent apparaître dans le & # 8220; sélectionné & # 8221; attribut de l'option & # 8220; & # 8221; étiquette?

StackOverflow https://stackoverflow.com/questions/1033944

  •  06-07-2019
  •  | 
  •  

Question

J'ai quelques balises similaires à celles-ci:

<select>
  <option selected="selected">Apple</option>
  <option selected="">Orange</option>
</select>

Dans ce cas, "Orange". montre que l'élément sélectionné. Je me serais attendu à ce que le blanc de l'attribut selected en annule les effets. Y a-t-il un moyen d'écrire cela sans simplement laisser l'attribut à l'écart?

Était-ce utile?

La solution

Un navigateur différent peut traiter cet attribut différemment. Selon la documentation MSDN (pour Internet Explorer):

  

Pour sélectionner un élément en HTML, ce n'est pas   nécessaire pour définir la valeur de la   Attribut SELECTED à true. Le simple   présence de l'ensemble d'attributs SELECTED   sa valeur à true.

Sous Firefox et Safari, cela fonctionne:

<option selected='false' />

D'après ce que je peux dire en consultant la norme officielle WC3 pour HTML4, le cas pris en charge est uniquement:

<option selected='selected' />

Vous devrez soit émettre sélectivement l'attribut, soit utiliser du javascript pour contrôler l'élément sélectionné à l'origine.

Autres conseils

Spécification HTML5

https://www.w3.org /TR/html51/sec-forms.html#the-option-element

  

L'attribut de contenu sélectionné est un attribut booléen.

http://www.w3.org/TR/html5 /infrastructure.html#boolean-attributes :

  

La présence d'un attribut booléen sur un élément représente la valeur vraie et l'absence de cet attribut représente la valeur fausse.

     

Si l'attribut est présent, sa valeur doit être soit une chaîne vide, soit une valeur qui ne correspond pas à la casse ASCII pour le nom canonique de l'attribut, sans espace blanc de début ni de fin.

Conclusion

Les éléments suivants sont valides, équivalents et vrais :

<option selected />
<option selected="" />
<option selected="selected" />
<option selected="SeLeCtEd" />

Les éléments suivants sont invalides :

<option selected="0" />
<option selected="1" />
<option selected="false" />
<option selected="true" />

L'absence d'attribut est la seule syntaxe valide pour false :

<option />

Recommandation

Si vous souhaitez écrire du XHTML valide, utilisez selected = "sélectionné" , car < option sélectionnée > est invalide et les autres alternatives sont moins lisibles. Sinon, utilisez simplement < option sélectionnée > car il est plus court.

la seule valeur autorisée pour l'attribut sélectionné dans XHTML est " sélectionné ". Par conséquent, si vous souhaitez que votre balisage soit conforme à XHTML et fonctionne sur tous les navigateurs, ne le laissez pas est le seul choix pour le désélectionner.

Non, l'existence de l'attribut sélectionné indique au navigateur qu'il s'agit de l'élément sélectionné. Tout ce qui est entre guillemets est ignoré.

Modifier: avec Javascript, recherchez les balises d'option avec selected = """ et supprimez-les de l'attribut sélectionné.

En HTML (par opposition à XHTML), un attribut simple selected , sans aucune valeur, fonctionne correctement:

<option selected>Apple</option>
<option>Orange</option>

En XHTML (y compris XHTML5), vous avez besoin d'une valeur, qui devrait également être sélectionné :

<option selected="selected">Apple</option>
<option>Orange</option>

Cela fonctionne également très bien en HTML.

C'est généralement le cas pour les valeurs booléennes en (X) HTML. La façon de les définir comme faux est de les omettre complètement. La définition des valeurs de true et de false peut fonctionner, mais n'est pas standard.

Notez que pour une liste d'options, la première est sélectionnée par défaut, ce qui n'est pas du tout nécessaire dans ce cas.

Selon w3schools , vous devez le définir comme suit: selected = " sélectionné ". Cela vous indique quelle option est initialement sélectionnée et vous permet de la définir ultérieurement via un script.

Il n'y a pas d'autre valeur valide que "sélectionné". pour cet attribut. ( http://www.w3schools.com/TAGS/att_option_selected.asp )

Il est préférable de définir la propriété selectElement.selectedIndex à partir de Javascript ou de supprimer complètement l'attribut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top