如何确定 jQuery 表单插件中的活动提交按钮?

Posted

技术标签:

【中文标题】如何确定 jQuery 表单插件中的活动提交按钮?【英文标题】:How to determine active submit button in jQuery Form Plugin? 【发布时间】:2014-10-17 04:53:27 【问题描述】:

我在表单中有几个提交按钮。如何在“beforeSubmit”回调中判断是哪个按钮发起了表单提交?

$('#myForm').ajaxSubmit( beforeSubmit(arr, $form, 选项) // 这里我们需要判断是哪个按钮发起的 // 提交表单?

很遗憾,<em>arr</em> 不包含任何提交按钮字段。

concole.log(arr);

[对象,对象,对象] 0:对象 名称:“启用” 必需:假 类型:“复选框” 值:“1” __proto__: 对象 1:对象 名称:“职位” 必需:假 类型:“隐藏” 值:“头顶” __proto__: 对象 2:对象 名称:“索引” 必需:假 类型:“隐藏” 值:“0” __proto__: 对象 长度:3 __proto__: 数组[0]

我只有一个表单,该表单有两个提交按钮。 表单如下所示: <form id="myForm" method="post" action="/admin/settings/template_save"> <input name="enabled" type="checkbox" value="1" checked="checked"> <input name="delete" type="submit" value="Delete"> <input name="save" type="submit" value="Save"> <input type="hidden" name="position" value="headertop"> <input type="hidden" name="index" value="0"> </form> 他们的文档也没有描述这个问题。 请帮忙。 谢谢!

【问题讨论】:

同一个表单有多个提交按钮?或者这些表单有不同的表单和不同的提交按钮? 我只有一个表单,该表单有两个提交按钮。 【参考方案1】:

与任何事件 callbackFunction 一样,事件作为第一个对象传递给您的函数。因此,您只需检查按钮是否是您期望的按钮,例如:

function onSubmitHandler(e)
    var btnClicked = e.target;
    if (btnClicked.id === "expectedBtnId") 
        // work
    

【讨论】:

以上是关于如何确定 jQuery 表单插件中的活动提交按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何强制进入表单中的活动下一个输入字段

如何使用 jQuery 提交带有部分只读输入的表单?

jQuery Validation 插件:禁用对指定提交按钮的验证

HTML 表单上的默认提交按钮是如何确定的?

jQuery表单插件jquery form js

通过单选按钮更改 Jquery 表单提交