Quelle est la valeur appropriée pour un attribut vérifié D'une case à cocher HTML?

nous savons tous comment former une case à cocher entrée en HTML:

<input name="checkbox_name" id="checkbox_id" type="checkbox">

ce que je ne sais pas -- quelle est la valeur techniquement correcte pour une case à cocher cochée? J'ai vu que tout cela fonctionne:

<input name="checkbox_name" id="checkbox_id" type="checkbox" checked>
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="on">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="yes">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="checked">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="true">

est la réponse que ça n'a pas d'importance? Je ne vois aucune preuve pour la réponse marquée comme correcte ici de la spec elle-même:

Les cases à cocher

(et les boutons radio) sont des interrupteurs qui peuvent être activés ou désactivés par l'utilisateur. Un interrupteur est "on" quand l'élément de commande est vérifié attribut est défini. Lorsqu'un formulaire est soumis, cochez seulement la case "on" les contrôles peuvent devenir un succès. Plusieurs cases à cocher dans une forme peuvent partager le même nom de contrôle. Ainsi, par exemple, les cases à cocher permettent aux utilisateurs sélectionnez plusieurs valeurs pour la même propriété. L'élément D'entrée est utilisé pour créer un contrôle de case à cocher.

que dirait un rédacteur spécialisé? Veuillez fournir des réponses fondées sur des données probantes.

389
demandé sur Community 2011-10-21 19:41:27

7 réponses

à proprement parler, vous devez mettre quelque chose qui a du sens - selon la spécification ici , la version la plus correcte est:

<input name=name id=id type=checkbox checked=checked>

pour HTML, vous pouvez aussi utiliser la syntaxe attribut vide , checked="" , ou tout simplement checked (pour plus de détails sur XHTML, c'est non supporté ).

effectivement, cependant, la plupart des navigateurs supportera à peu près n'importe quelle valeur entre les guillemets. Tous les éléments suivants seront vérifiés:

<input name=name id=id type=checkbox checked>
<input name=name id=id type=checkbox checked="">
<input name=name id=id type=checkbox checked="yes">
<input name=name id=id type=checkbox checked="blue">
<input name=name id=id type=checkbox checked="false">

et seuls les éléments suivants ne seront pas vérifiés:

<input name=name id=id type=checkbox>

Voir Aussi cette question similaire sur disabled="disabled" .

417
répondu Hannele 2017-11-01 15:59:42

HTML5 spec :

http://www.w3.org/TR/html5/forms.html#attr-input-checked :

l'attribut contenu désactivé 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 vraie valeur, et l'absence de l'attribut représente la valeur false.

si l'attribut est présent, sa valeur doit être soit la chaîne vide, soit une valeur qui est une correspondance ASCII insensible à la casse pour le nom canonique de l'attribut, sans espace principal ou arrière.

Conclusion :

voici en cours de validité, soit l'équivalent et vrai :

<input type="checkbox" checked />
<input type="checkbox" checked="" />
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="ChEcKeD" />

les termes suivants sont invalide :

<input type="checkbox" checked="0" />
<input type="checkbox" checked="1" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="true" />

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

<input />

recommandation

si vous vous souciez de l'écriture valide XHTML, utilisez checked="checked" , car <input checked> est invalide XHTML (mais valide HTML) et d'autres alternatives sont moins lisibles. Autre, suffit d'utiliser <input checked> comme il est plus court.

42
<input ... checked />
<input ... checked="checked" />

ceux-ci sont également valables. Et en JavaScript:

input.checked = true;
input.setAttribute("checked");
input.setAttribute("checked","checked");
34
répondu Niet the Dark Absol 2011-10-21 15:42:54

vous voulez ceci je pense: checked='checked'

7
répondu Johnny Craig 2011-10-21 15:42:32
  1. vérifié
  2. coché= ""
  3. vérifié= "vérifié"

    sont équivalents;


selon la spécification case à cocher '----ⓘ checked = "checked" ou "" (chaîne vide) ou vide Spécifie que l'élément représente un contrôle sélectionné.---

5
répondu wengeezhang 2014-06-05 03:41:49

c'est une ville assez folle que la seule façon de faire vérifier faux est d'omettre toutes les valeurs. Avec Angle 1.x, vous pouvez faire ceci:

  <input type="radio" ng-checked="false">

qui est beaucoup plus sain d'esprit, si vous avez besoin de faire décochée.

1
répondu Alexander Mills 2017-03-14 22:37:08

Eh bien, pour l'utiliser Je ne pense pas que les questions (similaire à désactivé et readonly), personnellement, j'utilise vérifié= "vérifié", mais si vous essayez de les manipuler avec JavaScript, vous utilisez vrai / faux

-2
répondu Austin Best 2011-10-21 15:43:52