目标:停止“提交”按钮,验证字段,创建结果的弹出式警报,在弹出窗口关闭时提交表单。
所以我有一个隐藏的popover div,当按下提交按钮时,我这样做是为了检查某些条件并显示popover:
$("form").submit(function(e) {
e.preventDefault();
if (($("#conditions").find("input:checkbox:checked").length ) || $('#radio_condition_1').is(":checked")) {
$("#popback").css('display', 'block');
}
});
然后我认为这个代码会在清除popover后提交表单:
$("#popback").click(function() {
$("#popback").css('display', 'none');
$("form").submit();
});
不
$("form").submit();
第二个代码可以正常清除弹出窗口。但是,插入提交功能后,它不仅不会清除弹出窗口,也不会提交表单。
注意:页面上有两种形式。
帮助?
答案 0 :(得分:2)
以下应该这样做:
$('form')[0].submit();
你拥有的内容$('form').submit()
会触发提交事件,从而再次触发提交处理程序,从而阻止默认表单提交,并且您又回到了开始的位置!
第1步:加载上面的演示,您将在控制台中看到submit event triggered
。
第2步:现在取消注释$('form')[0].submit()
并注释掉$('form').submit()
并点击run
和中提琴..表单已提交..绕过{ {1}}事件处理程序。
结论: ......见上文。
<强>更新强>
如果页面上有多个表单,则可以调整上面的代码以定位相关表单。例如,要在页面上提交第一个表单:
submit
或者只是使用任何选择器,例如ID或css,它们提供了特定的需求水平。