2011-06-15 50 views
5

我有一个表格。这个表单通过POST提交给一个iframe,然后处理这个请求,并根据结果执行一个javascript,根据提交的有效性更改父节点的内容。现在jQuery的拦截表单提交PARAM串

,我不喜欢这个过程。我希望能够同时提交多个表单,但我只有这一个隐藏的iframe。所以我想用AJAX来做,为每个表单提交创建一个单独的请求。

然而,我的形式是复杂的;它包含向数组中添加变量的复选框,单击的图像以及我需要发送的点击坐标的复选框以及类似的复杂东西 - 这就是为什么我不计算每个输入的值并将其添加到后置参数字符串(顺便说一下:我不知道如何以这种方式创建数组),我宁愿让截获的提交内容,保存为包含所有这些参数的后缀字符串,然后将此字符串用于AJAX POST请求。

,我想在这个功能做的事:提前

$('#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) 

}); 

谢谢!

回答

7

不要使用iframe,只需使用jQuery's ajax methods:(我在下面的示例中使用post()

$('#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 

}); 

下面是一个例子:http://jsfiddle.net/maniator/Y6r8E/
类型的东西到表单并提交。

+0

完美!惊人!哇,正是我需要的! – arik 2011-06-15 19:38:45

+0

@阿里克,所以没有问题^ _^ – Neal 2011-06-15 19:39:23

+0

除了一两件事,我只注意到。如果使用图像作为提交按钮,则不会点击位置(这不会太糟糕),但是即使点击图像(如果使用多个图像作为潜在提交按钮)也不会通过。 – arik 2011-06-15 19:51:29

1

jQuery的serialize()功能将收集表单数据给你,通过阿贾克斯,以便轻松表单提交()或。员额()。