【问题标题】:HTML form submit when press enter key按下回车键时提交 HTML 表单
【发布时间】:2012-01-02 21:45:17
【问题描述】:

在我的表单中,如果我单击提交按钮,它应该提交。即使我在文本字段中并按回车键,表单也应该提交。谁能告诉我为什么会这样?

<html>
    < body>

    <form name="input" action="html_form_action.asp" method="get">
        First name: <input type="text" name="FirstName"  /><br />
        Last name: <input type="text" name="LastName" /><br />
        <input type="submit" value="Submit" />
    </form> 

    </body>
</html>

【问题讨论】:

  • 这种行为在历史上也因浏览器而异,IE 在某些版本中与往常一样。

标签: asp.net html forms


【解决方案1】:

这是提交按钮的默认行为。当您按下回车键时提交任务触发。 如果你不想这样,你可以阻止它。在相关标签中使用下面的代码。

event.preventDefault()

例如:-

onkeydown='if ((event.keyCode == 13 && document.getElementById("field_0").value!="") &&  event.which == 13){   
                document.getElementById("field_1").focus();
                event.preventDefault();
}'

【讨论】:

    【解决方案2】:

    正如昆汀所说,这是正常行为。但是如果你想在输入键后阻止提交,你可以这样做:

    <SCRIPT LANGUAGE="javascript"> 
    function testForEnter() 
     {    
       if (event.keyCode == 13) 
       {        
          event.cancelBubble = true;
          event.returnValue = false;
      }
    } 
    </SCRIPT> 
    

    更多详情请参阅this post

    【讨论】:

    • 啊,全局 event 对象的喜悦。这绝对是非标准的,只能在 Internet Explorer 中使用。
    • @user1057697 : 你应该接受 Quentin answer ,因为上面是一个非标准的解决方案。
    【解决方案3】:

    这是正常行为。浏览器允许用户在文本字段中按 enter 提交表单;它使许多表格更加方便。

    【讨论】:

    • 但只有 (IIRC) 如果最多有一个提交按钮。
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2012-01-20
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多