关于提交特定按钮的jQuery

时间:2015-08-13 21:32:54

标签: javascript jquery html forms

基本上我的问题非常类似于:

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?

然而,这些选项都不适合我,我正在寻找一个更优雅的解决方案来解决这个问题。

2 个答案:

答案 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元素。