如何使用jquery.on()submit检测输入按钮值
如何使用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()未定义 然后我
$('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);
});