我正在使用此插件:http://malsup.com/jquery/form/#getting-started
我遇到问题,让它同时在页面上提交(使用单个函数)多个表单,并使其更复杂,我通过远程html调用的ajax加载表单。因此需要再次加载表单函数。
问题是如何使用(如果可能)可以同时提交多个表单的可重用函数。
答案 0 :(得分:2)
可能您可以使用LiveQuery插件来解决该问题。它可以像例如
一样工作<button ... rel="formId"/>
jQuery(".formButton").livequery("click",function() {
var formId=jQuery(this).attr("rel");
jQuery("#"+formId).ajaxSubmit();
}
因此,带有.formButton类的按钮可以包含在服务器响应中,并且使用livequery也可以处理它。 希望能帮助到你。 抱歉我的英文。
答案 1 :(得分:0)
jQuery插件为您指定的表单的onsubmit事件添加一个事件侦听器。因此,为了同时提交多个表单,您需要一个调用每个表单的提交事件的函数。像这样:
function doubleSubmit(e) {
if (e.target.id == 'form2') {
$('#form1').submit();
} else {
$('#form2').submit();
}
}
下一个技巧是在任何一个表单提交时调用此函数。我会做这样的事情:
$("#form1").bind("submit", doubleSubmit);
$("#form2").bind("submit", doubleSubmit);
我没有测试过这段代码,但它应该给你一般的想法。
答案 2 :(得分:0)
您不能一次提交多个表格。但你可以按顺序提交它们
function submitFn() {
$('form').each(function() {
$.post(url, data, function() {
...
}
return false;
});}
并添加侦听器:
$('form').bind('submit', submitFn);
如果您没有,则返回false非常重要,然后提交的第一个表单将提交两次
答案 3 :(得分:0)
我可能会这样:
// after you import the html
$("#form1, #form2").bind("submit", submit);
// or simply
$("form").bind("submit", submit);
function submit() {
/// a $.post implementation selecting all the controls and passing them as data
return false; // to prevent an actual browser submit
}