HTML5: 如何在任何文本输入中按 ENTER 后提交表单?
HTML5: How to make a form submit, after pressing ENTER at any of the text inputs?
标题不言自明...我有几个表单,其中一个只是一个文本输入表单,另一个由两个文本输入组成。我不想要任何 提交按钮 ,我希望只要用户在任何文本输入中按下 ENTER 按钮,每个表单都会提交:
- 每次用户按下 ENTER 按钮时,仅由一个输入组成的表单就会提交 - 完美!
- 由两个文本输入组成的第二种形式不是这种方式,当用户在两个输入中的任何一个按下 ENTER 按钮时它都不会提交。
有没有一种方法可以使表单 具有多个文本输入 以这种方式运行并避免其中包含 提交按钮 ?
您将需要查找 Enter 键。 post 这里展示了如何做到这一点。
Enter key press event in JavaScript
确保您的输入在 "form" 元素内,并为 "form" 元素赋予 "action" 属性。
尝试在 <form></form>
标签之间添加这个
<input type="submit" style="display: none" />
已对其进行测试,它可以在 Firefox 和 Chrome 上运行。如果您在表单中有提交输入类型,enter 应该会自动提交它,无论它是否可见。
实际上我自己在登录表单中使用它,尽管在用户名字段中,移动到下一个字段比提交更有意义。以防万一您有类似的用例,这是我使用的代码(需要 jQuery)
$('#username').keypress(function(event) {
if (event.keyCode == 13 || event.which == 13) {
$('#password').focus();
event.preventDefault();
}
});
请注意,尽管有一个小错误 -- 如果用户选择浏览器自动完成用户名并按 enter,它仍会移动到下一个字段而不是选择它。没有时间调试这个,但如果有人能弄清楚如何修复它,那就太好了。
我一直在寻找这个问题的解决方案,并希望根据此处的许多帖子分享我的解决方案。 (在现代 Chrome/Firefox/IE 上测试)
因此,仅使用 Javascript 如果在 any 字段 or 上按下 ENTER 键,则以下代码会提交表单按下按钮 Submit
。之后它 clear/reset 表格,这是一件很好的事情。
希望对您有所帮助。
<!DOCTYPE html>
<html>
<body>
<p>Based on http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_ev_onsubmit</p>
<p>When you submit the form, a function is triggered which alerts some text.</p>
<div onKeyPress="return myFunction(event)">
<form id="form01" action="demo_form.asp" onsubmit="return false;" >
Enter name: <input type="text" name="fname">
<input type="button" value="Submit" onclick="myFunction(0)">
</form>
</div>
<script>
function myFunction(e) {
if((e && e.keyCode == 13) || e == 0) {
alert("The form was submitted");
document.forms.form01.submit();
document.forms.form01.fname.value = ""; // could be form01.reset as well
}
}
</script>
</body>
</html>
您可以使用下面的代码在按 Enter 后提交表单。
<input id="videoid" placeholder="Enter the video ID">
<button id="mybutton" type="button" onclick="myFunction()">Submit</button>
<script>
var input = document.getElementById("videoid");
input.addEventListener("keyup", function(event) {
if (event.keyCode === 13) {
event.preventDefault();
document.getElementById("mybutton").click();
}
});
</script>
标题不言自明...我有几个表单,其中一个只是一个文本输入表单,另一个由两个文本输入组成。我不想要任何 提交按钮 ,我希望只要用户在任何文本输入中按下 ENTER 按钮,每个表单都会提交:
- 每次用户按下 ENTER 按钮时,仅由一个输入组成的表单就会提交 - 完美!
- 由两个文本输入组成的第二种形式不是这种方式,当用户在两个输入中的任何一个按下 ENTER 按钮时它都不会提交。
有没有一种方法可以使表单 具有多个文本输入 以这种方式运行并避免其中包含 提交按钮 ?
您将需要查找 Enter 键。 post 这里展示了如何做到这一点。 Enter key press event in JavaScript
确保您的输入在 "form" 元素内,并为 "form" 元素赋予 "action" 属性。
尝试在 <form></form>
标签之间添加这个
<input type="submit" style="display: none" />
已对其进行测试,它可以在 Firefox 和 Chrome 上运行。如果您在表单中有提交输入类型,enter 应该会自动提交它,无论它是否可见。
实际上我自己在登录表单中使用它,尽管在用户名字段中,移动到下一个字段比提交更有意义。以防万一您有类似的用例,这是我使用的代码(需要 jQuery)
$('#username').keypress(function(event) {
if (event.keyCode == 13 || event.which == 13) {
$('#password').focus();
event.preventDefault();
}
});
请注意,尽管有一个小错误 -- 如果用户选择浏览器自动完成用户名并按 enter,它仍会移动到下一个字段而不是选择它。没有时间调试这个,但如果有人能弄清楚如何修复它,那就太好了。
我一直在寻找这个问题的解决方案,并希望根据此处的许多帖子分享我的解决方案。 (在现代 Chrome/Firefox/IE 上测试)
因此,仅使用 Javascript 如果在 any 字段 or 上按下 ENTER 键,则以下代码会提交表单按下按钮 Submit
。之后它 clear/reset 表格,这是一件很好的事情。
希望对您有所帮助。
<!DOCTYPE html>
<html>
<body>
<p>Based on http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_ev_onsubmit</p>
<p>When you submit the form, a function is triggered which alerts some text.</p>
<div onKeyPress="return myFunction(event)">
<form id="form01" action="demo_form.asp" onsubmit="return false;" >
Enter name: <input type="text" name="fname">
<input type="button" value="Submit" onclick="myFunction(0)">
</form>
</div>
<script>
function myFunction(e) {
if((e && e.keyCode == 13) || e == 0) {
alert("The form was submitted");
document.forms.form01.submit();
document.forms.form01.fname.value = ""; // could be form01.reset as well
}
}
</script>
</body>
</html>
您可以使用下面的代码在按 Enter 后提交表单。
<input id="videoid" placeholder="Enter the video ID">
<button id="mybutton" type="button" onclick="myFunction()">Submit</button>
<script>
var input = document.getElementById("videoid");
input.addEventListener("keyup", function(event) {
if (event.keyCode === 13) {
event.preventDefault();
document.getElementById("mybutton").click();
}
});
</script>