单击提交按钮的值

这应该是非常直截了当的。

我正在检查是否正在使用jquery提交表单。 表单有多个提交按钮,具有各种值:

  

我想找到刚刚提交表单的按钮的值:

 $(form).live('submit', function() { // Get value of submit button } 

谢谢

绑定事件以提交按钮而不是表单,然后$(this)将引用按钮…

 $(":submit").live('click', function() { alert($(this).val()); }) 

编辑自jQuery 1.7 live以来已被弃用。 请改用。

 $(document).on("click", ":submit", function(e){ alert($(this).val()); }); 

这似乎得到了点击的提交按钮:

 jQuery("#TheForm").context.activeElement.name jQuery("#TheForm").context.activeElement.value 

如果您正在使用“提交”活动,则不能。 无需点击提交按钮即可提交表单。

为了获得单击的按钮,您需要通过使用自定义事件并标记实际单击了哪个按钮来改变您的方法(创建一个可以捕获单击表单中任何X按钮的选择器)。 这还需要绑定自定义事件并禁止提交表单本身的事件。

 $('input[type="submit"]').click(function() { alert ($(this).val()); } 

正如其他人所建议的那样,我最终在每个提交按钮上使用了click事件。 这样可以正常工作,如果要取消提交,可以从中返回false。 只是不要尝试绑定表单的提交事件。 您还可以让这些处理程序中的每一个调用一个公共的提交处理函数,并将它们自己的值作为参数传递。

我建议使用Firebug Add On,只需查看控制台中的数据,就会得到很多回答。 我意识到,在您的情况下,您可以通过以下方式访问提交值:

 alert($(this).context.submit.value);