working - obtener valor de un select multiple javascript
¿Cómo puedo obtener el valor del formulario de un elemento deshabilitado<input> (9)
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.
¿Hay alguna 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 en 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.
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.
HACK: puedes usar Javascript para, al enviar:
- Desactivar desactivado
- Establecer solo
- ¡Enviar!
¿Se puede usar Visible=false
y / o ReadOnly=true
lugar de Enabled=false
?
Si está utilizando el control, ¿realmente no debería establecer Enabled=false
?
Como una variante ligeramente más robusta del truco de Wayne (que podría confundirse con un botón Atrás), al deshabilitar un control: set readonly= true
y className= ''disabled''
lugar de disabled= true
, entonces el estilo .disabled
para parecerse a un campo desactivado.
Si realiza el valor de solo lectura , en lugar de deshabilitarlo, el nombre / valor del campo se enviará con el resto de los campos no desactivados.
Haga que el controlador de eventos de foco de los campos de solo lectura pase el foco al siguiente campo elegible, para que actúe más como un elemento desactivado. Algunos navegadores le permiten enfocar y seleccionar campos de solo lectura, y algunos incluso le permiten pegar en un campo de solo lectura, aunque vuelven al valor original onblur y onchange.
<input type="text" value="" readonly="readonly">
En lugar de configurar el campo como desactivar, configure el atributo de solo lectura en "solo lectura" como se muestra a continuación. readonly = readonly
esto enviará el valor de tu campo en el envío de formulario.
Arreglé un plugin rápido (solo Jquery), que guarda el valor en un campo de datos mientras una entrada está deshabilitada. Esto solo significa que mientras el campo se deshabilite programáticamente a través de jquery usando .prop () o .attr () ... entonces el acceso al valor por .val (), .serialize () o .serializeArra () siempre devolverá el valor incluso si está deshabilitado :)
Es simple solo dos pasos
compruebe si la entrada a la que desea acceder está deshabilitada si es entonces elimine su atributo "deshabilitado"
Obtenga el valor y luego agregue el atributo deshabilitado nuevamente.
Supongo que esto es un truco, pero parece funcionar bien para mí. ¡Haz ambos! El usuario ve una entrada deshabilitada, claramente fantasma y el navegador impide la interacción, pero no se envía con el formulario. El usuario no ve el campo de solo lectura potencialmente desorientador, sin embargo, se envía con el formulario.
<input name="mode_d" size="8" value="mode" disabled>
<input name="mode" value="mode" hidden readonly>
Debe usar el indicador readOnly
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"/>