2009-02-07 12 views
29

El estándar HTML para formularios parece ser tal que los elementos de entrada deshabilitados no contribuyen a la colección de nombre/valor del formulario.¿Cómo puedo obtener el valor del formulario de un elemento deshabilitado <input>

¿Hay CUALQUIER forma de evitar esto? Necesito poder activar y desactivar la desactivación pero aún devolver el valor que sea cuando se envíe el formulario.

Me doy cuenta de que puedo usar JavaScript para copiar el valor a una entrada oculta antes de enviar el formulario, pero preferiría no hacerlo. ¿Hay una manera más limpia?

Estoy usando ASP.NET, no es que eso importe.

Respuesta

-1

¿Se puede usar Visible=false y/o ReadOnly=true en lugar de Enabled=false?

Si está utilizando el control, ¿realmente no debería establecer Enabled=false?

+0

No estoy utilizando la propiedad Habilitada que proporciona ASP.NET, simplemente estableciendo deshabilitado "deshabilitado" o no con JavaScript. Gracias por la contribución. –

+0

Configuración Visible = False significa que el control ni siquiera se procesará en la página. No habría nada que verifique para la entrada. – womp

16

El estándar HTML para formularios parece ser tal que los elementos de entrada deshabilitados no contribuyen a la colección de nombre/valor de formulario.

Eso es correcto.

CORTE: Usted podría utilizar Javascript para, al presentar:

  1. Desestablecer discapacitados
  2. Establecer sólo lectura
  3. Presentar!
+0

Brillante, gracias. Si tengo que usar Javascript, preferiría no copiar valores. Esto funciona en IE y FF al menos. Todavía estoy probando el navegador cruzado, pero te daré la bandera de respuesta por ahora. –

+0

También podría usar JavaScript para, al enviar, agregar campos de entrada ocultos al formulario para todos los elementos desactivados y copiar sus valores. – Miles

8

Como un poco más robusta variante de corte de Wayne (que podría confundirse con un empuje botón Atrás), al deshabilitar un control: juego de readonly= true y className= 'disabled' en lugar de disabled= true, entonces el estilo .disabled a un aspecto similar a un campo discapacitados .

74

Debe usar la bandera readOnly en lugar de disabled. Los campos de solo lectura no pueden ser editados por el usuario, pero todavía se envían con el formulario.

<input type="text" value="blah" readonly="true"/> 
+0

readSolo funcionaba para las casillas de verificación. ¿Cómo obtengo el valor de la casilla de verificación desactivada? – Zohaib

+0

Es un atributo independiente, el valor true es innecesario: también lo haría (y es el html estándar). – ling

+0

its 'no funciona para el elemento