如何在输入按键和两个提交按钮上区分表单子目录

我有一个带有两个提交按钮的表单(提交具有不同ID的按钮)。 我想采取不同的行动:

  1. 输入KEY PRESS
  2. 单击提交按钮#1
  3. 单击提交按钮#2

有人可以指导我,我怎样才能通过jQuery实现这一目标。

提前致谢

你可以使用这样的代码:

$(":input").bind("click keypress", function(evt) { var keyCode = evt.which || evt.keyCode; if (keyCode == 13) { alert("ENTER pressed"); } else { var sender = evt.target; if (sender.type == "submit") alert("Submit button " + sender.id + " clicked"); } return true; }); 

通过处理clickkeypress事件,您可以捕获所有所需的方案。

测试用例: http : //jsfiddle.net/PChVY/

请注意,按ENTER也会触发第一个提交按钮click事件,因此要忽略它,您可以添加全局标志。

您可以执行以下操作( 请参阅实例 ):

 $(document).ready(function(){ $("input[type='text'],input[type='password']").keypress(function(e){ e.preventDefault(); if (e.which == 13){ alert("User pressed 'Enter' in a text input."); // do your custom processing here } }); $("input[type='submit']").click(function(e){ e.preventDefault(); var submitClicked = e.target.id; alert("The submit button with id '"+submitClicked+"' was clicked!"); //probably a switch statement here to do your custom processing based on which submit button was pressed. }); }); 

上面的代码将陷入任何文本或密码输入的输入按键…将忽略上的输入键按下(我想是一个期望的效果)。 在输入任何文本或密码时按Enter键不会触发第一个提交按钮单击。

请注意,您必须使用$([your form selector]).submit();通过上面的代码手动提交表单$([your form selector]).submit();

  $(function(){ $("input").keypress(function(e){ if (e.which == 13){ e.preventDefault(); alert("pressed 'Enter' preventDefault()
from Form #"+this.form.id); // do your custom processing here } }); });

对我来说很好,