2012-01-13 11 views
7

Parece que hay varias maneras de enviar (POST) campos de formulario con discapacidad en jQuery:¿El mejor método para enviar campos de formulario desactivados en jQuery?

  • tener un campo oculto que cambia cuando cambia la entrada, y lo presentarán
  • anexar manualmente los pares clave/valor a
  • de presentación
  • valores Revertir en el lado del servidor (sólo si no se espera que los valores para cambiar)

me preguntaba cual (si los hay) se considera la mejor práctica para la presentación de campos de formulario con discapacidad. Obviamente, readOnly es la mejor opción cuando está disponible, pero tengo casillas de verificación que debo enviar aunque estén deshabilitadas (debido a la lógica comercial). Me doy cuenta de que esta no es una situación ideal, pero rara vez es el caso en el desarrollo web.

¿Existe una mejor práctica para enviar elementos de formulario deshabilitados?

+2

Los elementos de formulario desactivados no deben enviarse. La forma correcta de hacerlo es crear entradas ocultas en submit. Aquí está la documentación en HTML: http://www.w3.org/TR/html4/interact/forms.html#successful-controls – Dave

+0

@Dave ¿Entonces está diciendo que la opción 1 es la mejor opción? A eso es a lo que me estaba inclinando también. Además, gracias por la documentación. – Igor

+0

@GrailsGuy Con respecto a su primera opción, si tiene un campo de formulario desactivado, ¿por qué cambiaría la entrada? –

Respuesta

7

La mejor opción es hacer las entradas de solo lectura: cree un evento de clic para las casillas de verificación que simplemente devuelve falso y cambie el color de fondo.

No hay una mejor práctica, pero esa requiere la menor manipulación.

5

Una cuarta solución sería permitir a las casillas de verificación antes de enviar el formulario:

$("form").submit(function() { 
    $("input:checkbox", this).prop("disabled", false); 
}); 

Puede utilizar un selector más sofisticado si no desea volver a activar todas las casillas de verificación.

0

hay otra manera si requiera para publicar todos o ciertos insumos disbaled:

  1. Paso 1: dar un nombre nombre de la clase (por ejemplo, mod.).
  2. Paso 2: onSubmit, permitió a todos los campos de los siguientes el ejemplo siguiente:.

    $ ("entrada [class = mod]") removeAttr ('discapacitados');

  3. Paso 3: Enviar datos

  4. Paso 4: Desactivar los campos de nuevo (si es necesario) siguiendo el ejemplo a continuación:.

    $ ("entrada [class = mod]") attr ('desactivado = "discapacitado"');

Cuestiones relacionadas