HTML表单 - 按“Enter”时执行脚本,无需提交

时间:2012-08-21 05:16:45

标签: javascript jquery html forms submit

  

可能重复:
  jQuery Event Keypress: Which key was pressed?

好的,这是我的情况(我过去已经解决了这个问题,但由于我不确定我的方法是最好的,我听取了一些建议):< / p>

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

事情是:

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

你会怎么做?


我的方法


表格

<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 个答案:

答案 0 :(得分:5)

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

$("#myform").submit(function(e){
    e.preventDefault();
    alert("The action has occurred without submitting the form!");
});

答案 1 :(得分:2)

$('#form_id').submit(function(){
  //do something
});

只要用户尝试提交表单,您就会触发此功能(您必须返回false或阻止默认值)

答案 2 :(得分:2)

如果您还希望在用户点击Enter时执行某些特定操作,则可以执行以下操作:

$(document).keypress(function(e) {
        if(e.which == 13) {
           e.preventDefault();
           // Do something         
        }
    });

答案 3 :(得分: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>

请使用上面的脚本找到回车键按你可以按需要办理输入。希望你的疑问解决了,请发帖给我。