如何使用jquery.on()submit检测输入按钮值

如何使用jquery.on()submit检测输入按钮值,jquery,input,submit,Jquery,Input,Submit,如何使用jquery.on()submit检测此表单上按下的输入按钮 ​​​​​​​​​​​​​​​ $('body')。关于('submit','form',function(e){ log($(this.attr(“value”)); 返回false;}) ​ 这里有一个JSFIDLE示例 我找了很多地方,尝试了许多不同的方法来检测.on()方法中的input submit按钮值,但我找不到它 在我的示例中,$(this.attr(“value”)和$(this.val()未定义 然后我

如何使用jquery.on()submit检测此表单上按下的输入按钮


​​​​​​​​​​​​​​​
$('body')。关于('submit','form',function(e){
log($(this.attr(“value”));
返回false;})
​ 这里有一个JSFIDLE示例

我找了很多地方,尝试了许多不同的方法来检测.on()方法中的input submit按钮值,但我找不到它

在我的示例中,$(this.attr(“value”)和$(this.val()未定义

然后我希望能够使用ajax提交表单,所以仅仅检测按钮并不是这个问题的重点。如果无法使用。(on)submit进行此操作,则了解这一点将有助于您了解,与使用不涉及表单提交的备用按钮检测方法进行回答不同。

$(此)对应于此处的
表单

$("input[type='submit']").click(function(e) {
      console.log($(this).val());
      return false;
});
而不是提交的
按钮

试试这个

$('body').on('click', 'input[type="submit"]', function(e) {
    e.preventDefault();
    console.log($(this).attr('value'));
    return false;
})​

您可以截获提交按钮的单击事件,然后手动触发表单提交,并将引用传递给原始按钮:

        $("input:submit").on("click", function () {
            $("form[name='input']").trigger("submit", this);
            return false;
        });

        $('body').on('submit', 'form', function (e, button) {
            console.log($(button).val());
            return false;
        })

我看不到从提交处理程序获取此信息的任何方法,但是您可以从按钮单击事件获取信息,然后在提交事件中使用它

$('body').on('submit', 'form', function(e) {
      console.log($(this).data('clicked'));
      return false;
});
$('form').on('click', 'input[type=submit]', function(e) {
      $(this.form).data('clicked', this.value);
});

你不需要提交一个主体,你需要提交一个表格。@Diodeus这是一个事件委托,所以它很好,是的,我能理解的那部分。仍然不知道如何从按下的按钮获取提交值。感谢您在回答时所做的努力。您的解决方案确实检测到了按钮值,但松开了要提交的表单。我希望得到的按钮信息,而不必再做技巧,以获得表单信息。似乎“提交”中应该有一种方法。这是一个很好的答案。它解释了我无法直接在.(on)submit中检测到按钮,但提供了一种使用.(on)的帮助器函数来执行此操作的方法。谢谢。我也喜欢这个解决方案是通用的,所以它可以处理页面上的任何表单。如果表单放在一个表中,那么$('form')。on('click'…事件不会触发,除非它更改为$('body')。on('click'…@dansalmo)无效的HTML会导致各种未定义的问题。我现在知道了,缺少了。谢谢。
        $("input:submit").on("click", function () {
            $("form[name='input']").trigger("submit", this);
            return false;
        });

        $('body').on('submit', 'form', function (e, button) {
            console.log($(button).val());
            return false;
        })
$('body').on('submit', 'form', function(e) {
      console.log($(this).data('clicked'));
      return false;
});
$('form').on('click', 'input[type=submit]', function(e) {
      $(this.form).data('clicked', this.value);
});