这应该是非常直接的。
我正在检查是否正在使用jquery提交表单。表单有多个提交按钮,其中包含各种值:
<button type="submit" value="foo">Foo</button>
<button type="submit" value="bar">Bar</button>
我想找到刚刚提交表单的按钮的值:
$(form).live('submit', function() {
// Get value of submit button
}
由于
答案 0 :(得分:22)
将事件绑定到提交按钮而不是表单,然后$(this)将引用按钮...
$(":submit").live('click', function() {
alert($(this).val());
})
编辑自jQuery 1.7 live起,不推荐使用。请改用on。
$(document).on("click", ":submit", function(e){
alert($(this).val());
});
答案 1 :(得分:4)
这似乎得到了点击的提交按钮:
jQuery("#TheForm").context.activeElement.name
jQuery("#TheForm").context.activeElement.value
答案 2 :(得分:2)
如果您正在使用“提交”活动,则不能。无需点击提交按钮即可提交表单。
为了获得单击了哪个按钮,您需要通过使用自定义事件并标记实际单击了哪个按钮来更改您的方法(创建一个可以捕获单击表单中任何X按钮的选择器)。这还需要绑定自定义事件并禁止提交表单本身的事件。
答案 3 :(得分:1)
$('input[type="submit"]').click(function() {
alert ($(this).val());
}
答案 4 :(得分:0)
我最终在每个提交按钮上使用了click事件,正如其他人所建议的那样。这样可以正常工作,如果要取消提交,可以从中返回false。只是不要尝试绑定表单的提交事件。您还可以让这些处理程序中的每一个调用一个公共的提交处理函数,并将它们自己的值作为参数传递。
答案 5 :(得分:0)
我建议使用Firebug Add On,只需查看控制台中的数据,您就会得到很多回答。我意识到在你的情况下你可以这样访问提交值:
alert($(this).context.submit.value);