2011-01-24 19 views
5

Estoy tratando de enviar un formulario al marcar o desmarcar una casilla usando jQuery y usando el valor de datos de esa casilla, ¿alguien me puede ayudar a hacer esto?jQuery enviar formulario en la casilla de verificación presione

+0

si usted fija el HTML que alguien puede ser capaz de ayudar. Creo que este es un problema bastante simple, pero es posible que desee describir más sobre lo que quiere que suceda. – Pointy

+0

Acabo de tener una lista de casillas de verificación con un valor de datos, cada vez que marque una casilla de verificación Deseo enviar el formulario junto con el valor asociado con esa casilla para poder usar los datos. – Neutralise

+0

¿Por qué está etiquetado ajax? – Phil

Respuesta

2

El requisito de presentar el valor de la casilla que acaba de desmarcar es el bit inusual aquí. Una opción es incluir ese valor en un campo oculto, que será enviado. Por lo tanto:

<input name="checkbox_trigger" id="checkbox_trigger" value="" type="hidden" /> 

continuación:

$('#yourcheckbox').click(function(e){ 
    $('#checkbox_trigger').val(e.value); // capture on check or uncheck 
    $(this).closest('form').submit(); 
}); 

Si el nombre de la casilla de verificación es también significativa, que pueda seguir fácilmente este patrón para capturar el nombre del campo también.

+0

'.change' puede ser un mejor ajuste que '.click', a menos que siempre sea desencadenado por el mouse del usuario. –

+0

El casillero de mi casilla de verificación es "checked_items []", pero la matriz está causando un error de sintaxis. ¿Cómo puedo solucionar esto? – Neutralise

+0

Brad, estoy de acuerdo que es una consideración. La razón por la que uso 'click' es que el comportamiento de IE con los eventos checkbox es incorrecto. Específicamente: el evento 'change' se registra cuando el estado verificado cambia * y * la casilla de verificación está borrosa, lo que significa que el cambio no se registra hasta que el foco se mueve a otra parte. Hay una solución usando el evento 'propertychange', pero no quería ir muy lejos en el agujero del conejo para responder una pregunta relativamente simple. –

1

Creo que se debería intentar con .trigger

Creo que hay un disparador presentar

$('#yourElement').live('click', function(){ 
    $('#yourForm').trigger('submit'); 
}) 
Cuestiones relacionadas