5

可能重复:
jQuery 事件按键:按下了哪个键?

好的,这是我的情况(我过去已经解决了这个问题,但是由于我不确定我的方法是最好的,所以我全心听取一些建议)

  • 我有一个简单的 HTML 表单
  • 此表格的目的不是永远提交
  • 用户正常单击(伪)Submit按钮,并执行所需的操作(通过 Javascript/Ajax 等)

事情是 :

  • 如果用户点击enter ,提交表单,这是我们绝对不想要的。
  • 我们想要的是捕捉那个特定的按键,在这种情况下,触发通常在单击按钮时执行的操作。

你会怎么做?


我的方法


表格

<form id="someId" action="#" method="post" 
      onsubmit="return false;" onkeypress="return enterSub(this,event);">
...
</form>

编码

function enterSub(inField, e) 
{ 
        var charCode;

        if(e && e.which)
        {
            charCode = e.which;
        }
        else if (window.event)
        {
            e = window.event;
            charCode = e.keyCode;
        }

        if (charCode == 13) 
        {
            performThatAction; // My Main action
        }
 }
4

4 回答 4

5

绑定到表单的提交而不是单击按钮,然后阻止默认操作。

$("#myform").submit(function(e){
    e.preventDefault();
    alert("The action has occurred without submitting the form!");
});
于 2012-08-21T05:20:15.130 回答
2
$('#form_id').submit(function(){
  //do something
});

每当用户尝试提交表单时,此函数都会触发(您必须返回 false 或阻止默认值)

于 2012-08-21T05:20:26.630 回答
2

如果您还想在用户按 Enter 时执行特定操作,您可以执行以下操作:

$(document).keypress(function(e) {
        if(e.which == 13) {
           e.preventDefault();
           // Do something         
        }
    });
于 2012-08-21T05:24:32.497 回答
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script>
document.attachEvent("onkeydown", win_onkeydown_handler);
function win_onkeydown_handler()
{
alert(event.keyCode);
switch (event.keyCode){
case 13 : // 'enter'
event.returnValue = false;
event.keyCode = 0;
alert("Enter Blocked");// If need show this alert else comment it
break;

}
}
</script>
<BODY>
</BODY>
</HTML>

请使用上面的脚本找到输入键,您可以根据需要处理输入。希望您的疑问已解决,否则请发帖给我。

于 2012-08-21T05:28:21.210 回答