Publicar valores de elementos de formulario deshabilitado
-
25-10-2019 - |
Pregunta
Tengo un formulario en el que necesito deshabilitar una variedad de casillas de verificación y algunos campos para que el usuario no pueda cambiar/alterar sus valores. Sin embargo, cuando envío el formulario, faltan los valores postales de los elementos deshabilitados. ¿Cómo puedo gestionar lo que estoy tratando de hacer sin este problema?
En este momento estoy deshabilitando los campos deshabilitando el contenedor Div así:
#unselectable {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
-webkit-user-select: none;
cursor:not-allowed;
}
Solución
Bueno, hay 3 soluciones en las que puedo pensar:
- Hazlos
readonly
agregando elreadonly
propiedad al elemento. - Deshabilitarlos en CSS/JavaScript. Colorearlo como si estuviera discapacitado y no permita la edición con JavaScript,
- Déjelo deshabilitado y retire el desactivado en enviar.
Elige tu opción :)
Otros consejos
Podrías usar readonly
en vez de disabled
Lo que es casi lo mismo para el usuario (no se puede editar) pero los valores de readonly
-Elementos se envían mientras el disabled
los que no.
Tenga en cuenta que hay Algunas otras diferencias Entre Readonly y Discapaced que podría llevar a otros problemas para usted:
El atributo discapacitado
- Los valores para elementos de formulario deshabilitado no se pasan al método del procesador. El W3C llama a esto un elemento exitoso (esto funciona similar a las casillas de verificación de formulario que no están marcadas).
- Algunos navegadores pueden anular o proporcionar un estilo predeterminado para elementos de formulario deshabilitado. (Texto de gris o en relieve) Internet Explorer 5.5 es particularmente desagradable al respecto.
- Los elementos de formulario deshabilitado no reciben enfoque.
- Los elementos de formulario deshabilitado se omiten en la navegación de pestañas.
El atributo solo de lectura
- No todos los elementos de formulario tienen un atributo Readonly. Lo más notable, el y los elementos no tienen atributos de lectura (aunque ambos tienen atributos deshabilitados)
- Los navegadores no proporcionan retroalimentación visual anulada por defecto que el elemento de formulario se lea solo. (Esto puede ser un problema ... ver más abajo).
- Los elementos de formulario con el conjunto de atributos Readonly se pasarán al procesador de formulario.
- Solo lea los elementos de formulario pueden recibir el enfoque
- Los elementos de solo lectura se incluyen en la navegación con pestañas.
No tiene mucho sentido enviar los mismos datos de aquí para allá.
Solo vete en el lado del servidor y luego úsalo al enviar.
Además, suponiendo que
El usuario no puede cambiar/alterar sus valores.
es bastante tonto.
Puede usar "solo lectura" en lugar de discapacitados, que debería tener el efecto deseado
También puede usar JavaScript para enviar su formulario, y pre-suscribir no se puede determinar (habilitar: p) los diversos campos?