web-dev-qa-db-fra.com

Les valeurs des entrées désactivées ne seront pas soumises

C'est ce que j'ai trouvé par Firebug dans Firefox.

Est-ce la même chose dans les autres navigateurs?

Si oui, quelle est la raison de cela?

197
omg

Oui, tous les navigateurs ne doivent pas soumettre les entrées désactivées, car elles sont en lecture seule.

Plus d'informations (section 17.12.1)

Définitions d'attributs

disabled [CI] Lorsqu'il est défini pour un contrôle de formulaire, cet attribut booléen désactive le contrôle pour une entrée utilisateur. Lorsqu'il est défini, l'attribut disabled a les effets suivants sur un élément:

  • Les contrôles désactivés ne reçoivent pas le focus.
  • Les contrôles désactivés sont ignorés dans la navigation par tabulation.
  • Les contrôles désactivés ne peuvent pas réussir.

Les éléments suivants prennent en charge l'attribut disabled: BUTTON, INPUT, OPTGROUP, OPTION, SELECT et TEXTAREA.

Cet attribut est hérité, mais les déclarations locales remplacent la valeur héritée.

Le rendu des éléments désactivés dépend de l'agent utilisateur. Par exemple, certains agents utilisateurs "grisés" des éléments de menu, des étiquettes de bouton, etc. désactivés.

Dans cet exemple, l'élément INPUT est désactivé. Par conséquent, il ne peut pas recevoir d’entrée utilisateur et sa valeur ne sera pas soumise avec le formulaire.

<INPUT disabled name="fred" value="stone">

Remarque. La seule façon de modifier de manière dynamique la valeur de l'attribut désactivé consiste à utiliser un script.

177
Aziz

disabled l'entrée ne soumettra pas de données.

Utilisez l'attribut readonly:

<input type="text" readonly />

Source ici

254
Fred K

Ils ne sont pas soumis, car c'est ce qui est écrit dans la spécification W3C .

17.13.2 Contrôles réussis

Un contrôle réussi est "valide" pour la soumission. [couper]

  • Les contrôles désactivés ne peuvent pas réussir.

En d'autres termes, la spécification indique que les contrôles désactivés sont considérés comme non valides et ne doivent pas être soumis.

21
MiffTheFox

Vous pouvez utiliser trois choses pour imiter désactivé:

  1. HTML: readonly attribut (afin que la valeur présente en entrée puisse être utilisée lors de la soumission du formulaire. De plus, l'utilisateur ne peut pas modifier la valeur en entrée)

  2. CSS: 'pointer-events':'none' (empêchant l'utilisateur de cliquer sur l'entrée)

  3. HTML: tabindex="-1" (empêchant l'utilisateur d'accéder à l'entrée à partir du clavier)

18
Novice_JS

Les contrôles Disabled ne peuvent pas aboutir et un contrôle réussi est "valide" pour la soumission. C'est la raison pour laquelle les contrôles désactivés ne sont pas soumis avec le formulaire.

2
Juan de Parras