如何在输入按键和两个提交按钮上区分表单子目录
我有一个带有两个提交按钮的表单(提交具有不同ID的按钮)。 我想采取不同的行动:
- 输入KEY PRESS
- 单击提交按钮#1
- 单击提交按钮#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; });
通过处理click
和keypress
事件,您可以捕获所有所需的方案。
测试用例: 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 } }); });
对我来说很好,