我有一个带有两个提交按钮的表单(提交具有不同ID的按钮)。我想采取不同的行动:
有人可以指导我,我怎样才能通过jQuery实现这一目标。
提前致谢
答案 0 :(得分:2)
您可以使用此类代码:
$(":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
事件,因此要忽略此事件,您可以添加全局标记。
答案 1 :(得分:2)
您可以执行以下操作(See Live Example):
$(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.
});
});
上面的代码将在任何文本或密码输入中捕获输入按键...将忽略对<textarea>
的输入键按下(我想是一个期望的效果)。在输入任何文本或密码时按Enter键不会触发第一个提交按钮单击。
请注意,您必须使用$([your form selector]).submit();
答案 2 :(得分:0)
$(function(){
$("input").keypress(function(e){
if (e.which == 13){
e.preventDefault();
alert("pressed 'Enter' preventDefault()<br>from Form #"+this.form.id);
// do your custom processing here
}
});
});
对我来说很好,