2011-06-15 8 views
5

Tengo un formulario. Este formulario se envía a través de POST a un iframe, que, a su vez, procesa la solicitud y, según el resultado, se ejecuta un javascript que cambia el contenido del padre de acuerdo con la validez del envío.jQuery intercepción formulario de presentación a cadena de parámetros

Ahora, este procedimiento no me gusta. Quiero la capacidad de enviar varios formularios al mismo tiempo, pero solo tengo este iframe escondido. Entonces me gustaría hacerlo con AJAX, creando una solicitud por separado para cada envío de formulario.

Sin embargo, mi forma es complicada; consiste en casillas de verificación que agregan variables a las matrices, de las imágenes en las que se hace clic y cuyas coordenadas de clic necesito enviar, y cosas complicadas como esa; por eso, en lugar de calcular cada valor de cada entrada y agregarlo a un parámetro de publicación cadena (por cierto: no sé cómo puedo crear matrices de esa manera), preferiría tener el contenido de envío interceptado, guardado como una cadena de publicaciones con todos esos parámetros, y luego usar esta cadena para el AJAX Solicitud POST

que me gustaría hacer en esta función:

$('#myForm').submit(function(event){ 

    // process the submission, e. g. event.getContent().toPostString(); 

    // create the AJAX request and send it and attach listeners (I know how to do this line ;) 

    return false; // I don't want the form submitted (to the iframe) 

}); 

Gracias de antemano!

Respuesta

7

No utilizar un iframe, sólo tiene que utilizar jQuery's ajax methods: (utilicé post() en el ejemplo siguiente)

$('#myForm').submit(function(event){ 

      //url   //post data 
    $.post(this.action, $(this).serialize(), function(returnData){ 
      //do something with returnData 
    }) 

    return false; //do not submit form the normal way 

}); 

Aquí se muestra un ejemplo: http://jsfiddle.net/maniator/Y6r8E/
Escribe algo en el formulario y enviarlo.

+0

¡Perfecto! ¡Asombroso! Guau, ¡justo lo que necesitaba! – arik

+0

@ arik-por lo que no hay problema^_^ – Neal

+0

Excepto por una cosa, me acabo de dar cuenta. Si usa imágenes como botones de envío, ni haga clic en la posición (que no sería tan terrible), pero ni siquiera se pasa la imagen clicada (si usa varias imágenes como posibles botones de envío). – arik

1

La función jQuery's serialize() reunirá los datos del formulario para usted, para permitir el envío fácil de formularios a través de .ajax() o .post().

Cuestiones relacionadas