Certains attributs HTML sont des "booléens" - les navigateurs les traitent comme "vrais" s'ils sont présents, quelle que soit la valeur. Un exemple d'un tel attribut est sélectionné sur l'étiquette <option>
. Un autre est vérifié sur <input type="checkbox">
.Attributs HTML booléens
Si vous avez un appel à setAttribute()
pour un tel attribut, il ne semble y avoir aucune valeur que vous pouvez définir pour que les navigateurs se comportent de manière cohérente comme si l'attribut était manquant.
Par exemple
option.setAttribute("selected", false)
marquera toujours l'option sélectionnée. null, chaîne vide ou undefined ne fonctionnent pas non plus. Si quelqu'un connaît une valeur que je peux définir pour atteindre mon objectif, s'il vous plaît faites le moi savoir, mais je ne pense pas qu'il existe. (En raison de un code-cadre que je l'utilise, pas appeler setAttribute()
, ou en appelant removeAttribute()
est difficile.)
J'essaie de trouver une liste exhaustive de ces attributs à leur cas particulier. Voici ce que j'ai jusqu'à présent:
- sélectionné de
<option>
- vérifié de
<input>
- désactivé, readonly de
<input>
,<select>
,<option>
,<optgroup>
,<button>
,<textarea>
- multiples de
<select>
S'il vous plaît aidez-moi à compléter cette liste - ou à moi de un.
J'ajouterais aussi un attribut ['itemscope'] (http://www.w3.org/TR/html5/microdata.html) à cette liste – Nazariy
Oui, il y a potentiellement plus de bundle lorsque vous ajoutez des extensions HTML5 aujourd'hui . – bobince
Voici une liste d'attributs booléens en HTML5: https://github.com/kangax/html-minifier/issues/63 Notez qu'il inclut quelques attributs non-booléens qui ont un comportement similaire (ie la valeur de chaîne vide correspond à un valeur par défaut différente), telles que 'contenteditable' et' spellcheck'. –