我正在尝试使用jQuery提交表单,它工作得很好,直到我必须添加一个确认窗口,以便用户可以在提交之前查看他们的数据,这是代码:
$("#create-group-form").live('submit', function(e){
e.preventDefault();
var form = $(this);
jConfirm('Here I display the group info...', 'Confirm Group', function(r){
if ( r ) {
form.submit();
}
});
});
我正在使用jQuery的jAlert插件,但它的工作方式与常规的不同样式的确认提示一样,前提是当用户在提示符下单击“确定”时它再次进入实时提交陷入无限循环。
在我确认后,有没有办法阻止它再次进入此事件?我想我可以解开它,但我还没有找到成功的方法。
BTW我正在使用实时提交,因为表单位于模态窗口中。
提前致谢!
答案 0 :(得分:9)
调用表单元素的submit
方法,而不是jQuery选择方法。这意味着不会触发jQuery处理程序:
$("#create-group-form").live('submit', function(e){
e.preventDefault();
var form = this; // <-- this line changed
jConfirm('Here I display the group info...', 'Confirm Group', function(r){
if ( r ) {
form.submit();
}
});
});
答案 1 :(得分:1)
在您再次调用submit()
之前,这将取消绑定您的事件处理程序。
$("#create-group-form").live('submit', function(e){
e.preventDefault();
var form = $(this);
jConfirm('Here I display the group info...', 'Confirm Group', function(r){
if ( r ) {
form.unbind('submit');
form.submit();
}
});
});
答案 2 :(得分:0)
将表单上的提交按钮替换为button
标记,其ID为#psuedo-submit
。单击#psuedo-submit
时,弹出模态窗口并在确认时进行实际提交。