2011-10-18 13 views
7

Tengo un formulario en el que necesito deshabilitar una matriz de casillas de verificación y algunos campos para que el usuario no pueda cambiar ni alterar sus valores. Sin embargo, cuando presento el formulario, los valores POST de los elementos desactivados faltan/nulo. ¿Cómo puedo gestionar lo que estoy tratando de hacer sin este problema?Valores POST de elementos de formulario deshabilitados

En este momento estoy desactivando los campos mediante la desactivación del 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; 

} 
+0

Deje de etiquetar sus títulos por favor. –

Respuesta

23

Bueno, hay 3 soluciones que se me ocurren:

  • los hacen readonly mediante la adición de la propiedad readonly al elemento.
  • desactivarlos en CSS/JavaScript.Colóquelo como inhabilitado, y no permita la edición con JavaScript,
  • Déjelo deshabilitado y elimine el deshabilitado al enviarlo.

Haga su elección :)

+0

¿Cómo elimino el deshabilitado en el envío? – bikey77

+2

Escribí un pequeño script que recorre todos los elementos del formulario y los habilita cuando se envía el formulario. ¡Gracias! – bikey77

0

usted podría utilizar "sólo lectura" en lugar de personas con discapacidad, que debe tener el efecto deseado

Usted también puede usar javascript para enviar su formulario, y pre-enviar des-desactivar (habilitar: P) los diversos campos?

6

se puede utilizar en lugar de readonlydisabled cual es casi lo mismo para el usuario (no puede ser editet), pero los valores de readonly -elementos obtener presentará disabled mientras que los otros no lo hacen.

nota que hay some other differences entre sólo lectura y al que se discapacitado podría conducir a otros problemas para usted:

El atributo de movilidad reducida

  • Los valores de los elementos de formulario con discapacidad no se pasan al procesador método. El W3C llama a esto un elemento exitoso. (Esto funciona de manera similar a cuadros de formulario que no están marcados).
  • Algunos navegadores pueden anular o proporcionar un estilo predeterminado para elementos de formulario deshabilitados. (Texto gris o en relieve) Internet Explorer 5.5 es especialmente desagradable al respecto.
  • Los elementos de formulario desactivados no reciben el foco.
  • Los elementos de formulario desactivados se omiten en la navegación de tabulación.

El atributo de sólo lectura

  • No todos los elementos de formulario tienen un atributo de sólo lectura. Lo más notable, el, y los elementos no tienen atributos readonly (aunque ambos tienen atributos deshabilitados)
  • Los navegadores no proporcionan retroalimentación visual anulada predeterminada que el elemento de formulario es de solo lectura. (Esto puede ser un problema ... ver a continuación.)
  • Los elementos de formulario con el conjunto de atributos de solo lectura se pasarán al procesador de formularios.
  • Los elementos de solo lectura pueden recibir el foco
  • Los elementos de solo lectura se incluyen en la navegación con pestañas.
2

No hay mucho sentido enviar los mismos datos de un lado a otro.

Simplemente déjalo en el lado del servidor y luego úsalo cuando lo envíes.

Además, suponiendo que

usuario no puede cambiar/alterar sus valores.

es bastante tonto.

+0

Es una forma en la que necesito tener algunas selecciones predefinidas según el tipo de usuario que difieren de un grupo a otro, por lo tanto los campos deben estar visibles pero no habilitados. – bikey77

+1

No estoy hablando de la visibilidad en el lado del cliente. Estoy hablando del lado del servidor, que ya tiene estos valores - sdo, no tiene sentido enviarlos de nuevo. Y sobre la suposición tonta de que el usuario no puede alterar los valores –

+0

Vine aquí buscando una solución para enviar datos deshabilitados al servidor, cuando en realidad no necesito hacerlo en absoluto, una solución mucho más simple. gracias – bumperbox

Cuestiones relacionadas