我有这个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 。我怎么能这样做?
答案 0 :(得分: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>
答案 1 :(得分: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>
答案 2 :(得分: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>
答案 3 :(得分: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>
答案 4 :(得分:-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才能简化生活。 DEMO: http://jsfiddle.net/WDvvY/
答案 5 :(得分:-1)
事实上,我认为答案比这更简单。如果您不想让Enter键导致提交,请没有按钮或输入类型&#34;提交&#34;在你的形式。 onsubmit =&#34; return false;&#34;没有为我做任何事。 Firefox 27和IE 11。