首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从表单提交事件中获取导致提交的按钮?

如何从表单提交事件中获取导致提交的按钮?
EN

Stack Overflow用户
提问于 2010-01-15 01:34:02
回答 15查看 94.7K关注 0票数 119

我正在尝试查找触发表单提交的submit按钮的值

代码语言:javascript
复制
$("form").submit(function() {

});

我可能会为每个按钮触发一个$("inputtype=submit").click()事件并设置一些变量,但这似乎不如在提交时将按钮从表单中拉出的方式优雅。

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2010-01-15 02:07:06

我实现了这一点,我想它会行的。

代码语言:javascript
复制
$(document).ready(function() {
    $("form").submit(function() { 

    var val = $("input[type=submit][clicked=true]").val()

    // DO WORK

});

这是设置它的提交按钮事件

代码语言:javascript
复制
$("form input[type=submit]").click(function() {
    $("input[type=submit]", $(this).parents("form")).removeAttr("clicked");
    $(this).attr("clicked", "true");
});

谢谢你的回复,但这并不是很不雅观...

票数 34
EN

Stack Overflow用户

发布于 2010-01-15 01:58:17

我创建了一个测试表单,并使用Firebug找到了这种方法来获取值;

代码语言:javascript
复制
$('form').submit(function(event){
  alert(event.originalEvent.explicitOriginalTarget.value);
}); 

不幸的是,只有Firefox支持这个事件。

票数 11
EN

Stack Overflow用户

发布于 2011-07-30 03:18:28

对于我的目的来说,这里有一种看起来更干净的方法。

首先,对于任何和所有形式:

代码语言:javascript
复制
$('form').click(function(event) {
  $(this).data('clicked',$(event.target))
});

当为表单触发此单击事件时,它只是记录原始目标(在事件对象中可用),以便稍后访问。这是一个非常宽泛的笔划,因为它将触发表单上任何位置的任何单击。欢迎优化评论,但我怀疑它永远不会引起明显的问题。

然后,在$('form').submit()中,您可以查询最后单击的内容,如下所示

代码语言:javascript
复制
if ($(this).data('clicked').is('[name=no_ajax]')) xhr.abort();
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2066162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档