1

我有这个 HTML 表单:

<head>
<title>log in</title>
</head>
<body>
<form action="login.php" method="POST">
user name : <input type="text" name="user"> <br>
user pass : <input type="password" name="pass"> <br>
<input type="submit" value="submit"> 
</form>
</body>

我想让它只能通过单击按钮提交表单 - 而不是按Enter. 我怎样才能做到这一点?

4

6 回答 6

5

有很多解决方案。这是最简单的一种:

<html>
<head>
    <title>log in</title>
</head>
<body>
    <form action="login.php" method="POST" onsubmit="return false;">
        user name : <input type="text" name="user"> <br>
        user pass : <input type="password" name="pass"> <br>
        <input type="button" value="submit" onclick="this.parentNode.submit();"> 
    </form>
</body>
</html>​​​​​​​​

演示:http: //jsfiddle.net/EFDZ2/

于 2012-05-27T14:25:48.760 回答
0

这对我来说最有效:

<input id="input_id" type="text">

<script>
    // prevent the enter key from submitting the form if input_id has focus to prevent accidental submission
    document.getElementById('input_id').addEventListener('keypress', function(event) {
        if (event.keyCode == 13) {
            event.preventDefault();
        }
    });
</script>
于 2015-03-05T06:12:04.403 回答
0

只是为了补充 VisioN 的答案,可能存在输入不是表单的直接子级的情况,因此在这些情况下,只需引用表单即可this.form

<html>
<head>
    <title>log in</title>
</head> 
<body>
    <form action="login.php" method="POST" onsubmit="return false;">
        user name : <input type="text" name="user"> <br>
        user pass : <input type="password" name="pass"> <br>
        <div>
            <input type="button" value="submit" onclick="this.form.submit();">
        </div>
    </form>
</body>
</html>​​​​​​​​
于 2015-10-28T05:10:20.107 回答
0

将以下脚本添加到页面的部分。

<script type="text/javascript">
    function stopRKey(evt) 
    {
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement)?evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type=="text"))  
        {
            return false;
        }
   }
   document.onkeypress = stopRKey;
</script> 
于 2015-10-28T05:23:29.613 回答
-1

事实上,我认为答案比这更简单。如果您不希望 Enter 键导致提交,请不要​​在表单中输入“提交”类型的按钮或输入。onsubmit="返回假;" 没有为我做任何事。火狐 27 和 IE 11。

于 2014-03-23T14:52:17.803 回答
-1
$(document).ready(function() {

    function checkKey(e) {
        if (e.keyCode == 13) {

            if (!e) var e = window.event;

            e.cancelBubble = true;
            e.returnValue = false;

            if (e.stopPropagation) {
                e.stopPropagation();
                e.preventDefault();
            }
        }
    }

    $("input").keydown(checkKey);
})​

这应该适用于所有浏览器。它需要 JQuery 让生活变得更简单。 演示:http: //jsfiddle.net/WDvvY/

于 2012-05-27T14:37:13.390 回答