¿no se enviarán los valores de las entradas deshabilitadas?


Esto es lo que encontré por fireBug en firefox.

¿Es lo mismo en otros navegadores?

Si es así, ¿cuál es la razón de esto?

Author: Cœur, 2009-08-31

5 answers

Sí, todos los navegadores no no deben enviar las entradas deshabilitadas, ya que son de solo lectura.

Más información (sección 17.12.1)

Definiciones de atributos

Deshabilitado [CI] Cuando se establece para un control de formulario, este atributo booleano deshabilita el control para la entrada del usuario. Cuando se establece el atributo disabled tiene los siguientes efectos sobre un elemento:

  • Los controles desactivados no reciben enfoque.
  • Controles desactivados se omiten en la navegación por pestañas.
  • Los controles desactivados no pueden tener éxito.

Los siguientes elementos soportan el atributo disabled: BUTTON, INPUT, OPTGROUP, OPTION, SELECT y TEXTAREA.

Este atributo se hereda pero las declaraciones locales valor heredado.

Cómo se representan los elementos deshabilitados depende del agente de usuario. Para ejemplo, algunos agentes de usuario" gris fuera " elementos de menú deshabilitados, botón etiquetas, etc.

En este ejemplo, el elemento INPUT está deshabilitado. Por lo tanto, no puede recibir entrada del usuario ni su valor será enviado con el formulario.

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

Nota. La única manera de modificar dinámicamente el valor de los deshabilitados el atributo es a través de un script.

 150
Author: Aziz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-09 10:00:37

disabled input no enviará datos.

Utilice el atributo readonly:

<input type="text" readonly />

Fuente aquí

 210
Author: Fred K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-13 10:02:42

No se envían porque eso es lo que dice en la especificación del W3C.

17.13.2 Controles exitosos

Un control exitoso es "válido" para el envío. [snip]

  • Los controles desactivados no pueden tener éxito.

En otras palabras, la especificación dice que los controles que están deshabilitados se consideran inválidos y no deben enviarse.

 20
Author: MiffTheFox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-31 04:05:27

Puede usar tres cosas para imitar a disabled:

  1. HTML: readonly atributo (para que el valor presente en la entrada se pueda utilizar en el envío del formulario. También el usuario no puede cambiar el valor de entrada)

  2. CSS: 'pointer-events':'none' (bloquear al usuario para que no haga clic en la entrada)

  3. HTML: tabindex="-1" (bloquear al usuario para que navegue a la entrada desde el teclado)

 4
Author: Novice_JS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-25 12:18:38

Disabled los controles no pueden tener éxito, y un control exitoso es "válido" para el envío. Esta es la razón por la que los controles deshabilitados no se envían con el formulario.

 2
Author: Juan de Parras,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-08 11:05:13