jQuery:如何在表单提交时单击哪个按钮?

jQuery:如何在表单提交时单击哪个按钮?

我有一个.submit()事件设置为表单提交。我在页面上也有多个表单,但是这里只有一个在这个例子中。我想知道点击了哪个提交按钮而没有应用.click()事件对每个事件都有影响。

下面是设置:

<html><head>
  <title>jQuery research: forms</title>
  <script type='text/javascript' src='../jquery-1.5.2.min.js'></script>
  <script type='text/javascript' language='javascript'>
      $(document).ready(function(){
          $('form[name="testform"]').submit( function(event){ process_form_submission(event); } );
      });
      function process_form_submission( event ) {
          event.preventDefault();
          //var target = $(event.target);
          var me = event.currentTarget;
          var data = me.data.value;
          var which_button = '?';       // <-- this is what I want to know
          alert( 'data: ' + data + ', button: ' + which_button );
      }
  </script></head><body><h2>Here's my form:</h2><form action='nothing' method='post' name='testform'>
  <input type='hidden' name='data' value='blahdatayadda' />
  <input type='submit' name='name1' value='value1' />
  <input type='submit' name='name2' value='value2' /></form></body></html>

小提琴活生生的例子

除了在每个按钮上应用.click()事件之外,是否有一种方法可以确定单击了哪个提交按钮?



忽然笑
浏览 304回答 3
3回答

四季花海

这对我有用:$("form").submit(function()&nbsp;{ &nbsp;&nbsp;&nbsp;//&nbsp;Print&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;button&nbsp;that&nbsp;was&nbsp;clicked &nbsp;&nbsp;&nbsp;console.log($(document.activeElement).val());}

翻翻过去那场雪

我问了同样的问题:如何从表单提交事件中获得导致提交的按钮?最后我想出了一个解决方案,效果很好:$(document).ready(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$("form").submit(function()&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;val&nbsp;=&nbsp;$("input[type=submit][clicked=true]").val(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;DO&nbsp;WORK &nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;$("form&nbsp;input[type=submit]").click(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$("input[type=submit]",&nbsp;$(this).parents("form")).removeAttr("clicked"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).attr("clicked",&nbsp;"true"); &nbsp;&nbsp;&nbsp;&nbsp;});});在多个表单的情况下,您可能需要稍微调整一下,但它仍然应该适用。

收到一只叮咚

我发现这起作用了。$(document).ready(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$(&nbsp;"form"&nbsp;).submit(function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Get&nbsp;the&nbsp;submit&nbsp;button&nbsp;element &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;btn&nbsp;=&nbsp;$(this).find("input[type=submit]:focus"&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;});}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery