基本上我的问题非常类似于:
Click a specific submit button with JQuery
但是,我不想在按钮的点击上触发我的活动,我想在表单的提交上触发事件 - 但只有特定按钮(因为我有多个提交按钮)。
如何实现这一目标?
基本上我有这个:
$("#btnCompleteOrder").click(function(event) {
//Do stuff here
}
它运行正常 - 但我希望在表单验证后触发该事件 - 所以在提交(在点击之前发生在表单验证之前)。但是,我不认为我可以在按钮上.submit()
。
修改:是的,这也类似于How can I get the button that caused the submit from the form submit event?
然而,这些选项都不适合我,我正在寻找一个更优雅的解决方案来解决这个问题。
答案 0 :(得分:0)
我想我现在明白了这个问题。看看这是否适合你。
如果您没有提交按钮,请在表单中添加提交按钮,这对于HTML5验证是必要的。
<input id="invisibleSubmit" type="submit" class="submit" style="display:none">
然后为你的按钮处理程序使用:
$('#btnCompleteOrder').click(function(e) {
//don't submit the form
e.preventDefault();
//click the submit button so the html5 validtion occurrs
$("#invisibleSubmit").click();
//do some other stuff
//really submit the form
$(this).unbind('submit').submit()
});
答案 1 :(得分:-1)
您可以使用submit方法将处理程序绑定到表单的提交事件。
例如:
$('form').submit(function () {
// Do stuff here.
});
将form
替换为与表单元素匹配的选择器。
这种方法比简单地监听click
更好,因为您可能已经意识到,因为表单可以通过鼠标点击的方式提交。也可以通过按文本字段中的输入或通过Tab键到提交按钮并按空格键来提交表单。因此,您希望在表单本身上绑定事件处理程序,而不是像提交按钮那样绑定任何一个UI元素。