En HTML, ce qui devrait arriver à un activée, désactivée option élément?
Dans mon exemple, je fais face à une liste déroulante, par exemple:
HTML:
<select name="foo" id="bar">
<option disabled="disabled" selected="selected">Select an item:</option>
<option>an item</option>
<option>another item</option>
</select>
Bien sûr, c'est assez absurde, mais je me demandais si une stricte comportement est défini. Opéra efficacement rejette l'attribut 'selected' et sélectionne l'élément suivant dans la liste. Tous les autres navigateurs semblent permettre d'elle, et il reste sélectionné.
Mise à jour: Pour clarifier, je m'intéresse particulièrement à la sélection initiale. Je m'occupe de l'un de ces " Sélectionner un élément:'-menu déroulant " type, auquel cas la première option est vraiment une étiquette, et une action se produit onchange()
. C'est assez bien "progressivement amélioré", en ce qu'un bouton est présent, et seulement supprimé via JavaScript. Si le "select..." option ont été supprimés, quelles étaient alors de devenir le premier point ne serait pas sélectionnable. Sommes-nous juste écarter les onchange
menus déroulants tout à fait, ou si le "select..." option sélectionnable, avec aucun effet?
Vous devez vous connecter pour publier un commentaire.
En réponse à la mise à jour dans la question, je dirais que "l'étiquette" option doit être sélectionnable mais soit il ne font rien sur la soumission ou via JavaScript, ne permettent pas la forme pour être soumis sans valeur sélectionnée (en supposant que c'est un champ obligatoire).
À partir d'un usablilty point de vue, je te suggère de faire les deux, de cette façon, toutes les bases sont couvertes.
Le HTML, les specs sont un peu vague (ie. complètement en manque) à l'égard de cette étrange combinaison. Ils disent qu'un élément de formulaire avec les handicapés attribut ne doit pas être couronnée de succès, il a vraiment ne peut pas être sélectionné.
Le navigateur peut bien rendre, de sorte qu'il soit sélectionné, mais il ne devrait pas apparaître dans les données publiées. Ressemble à de l'Opéra a eu raison de moi.
Les spécifications HTML état que les deux sélectionnés & handicapées sont disponibles pour le
<option>
élément, mais ne précise pas ce qui doit se passer en cas de conflit. Dans le la section sur les contrôles désactivés il ditil dit aussi
Bien que ce cas particulier n'est pas spécifiée, ma lecture de ce dit que le rendu réel d'un "selected" 'disabled' élément est à gauche du navigateur. Tant que l'utilisateur ne peut pas sélectionner, puis il travaille en tant que norme. Il ne dit qu'un script peut agir sur l'élément, il est donc possible pour le Javascript pour définir une option désactivée sélectionnées (ou désactiver une option sélectionnée). Ce n'est pas contraire aux normes, mais sur le formulaire de soumission, que de l'option de valeur ne peut pas être la valeur sélectionnée. La liste de sélection serait (je suppose) ont une valeur vide dans ce cas.
Selon la Spécification HTML 4.01, désactivé est un standard de l'attribut de l'élément option, mais le comportement est probablement indéterminée basé sur la norme (lire les informations sur l'élément select et les options des éléments. Voici une partie je pense que peut faire la lumière sur l'Opéra raisons de leur mise en œuvre:
Donc, il est très probable que c'est juste une de ces choses où la spec est suffisamment vague pour permettre aux deux interprétations. C'est le genre de particularité qui rend la programmation pour le web de manière amusante et enrichissante. 😛
"onchange" drop-bas sont désapprouvées par les normes plus obsédé par types.
Je ferait certains de validation côté client. "S'il vous plaît sélectionnez un élément dans la liste déroulante" type de chose. c'est à dire
Alors j'ai juste dit "Oui" à votre A ou B à la question. :/Désolé!
malheureusement, il n'importe pas vraiment ce qui doit arriver, parce que IE ne prend pas en charge les personnes handicapées de l'attribut sur la période.
http://webbugtrack.blogspot.com/2007/11/bug-293-cant-disable-options-in-ie.html