Javascript 在Submit上捕获表单还是捕获Enter键?
我有一个页面,包含一个文本框和一个按钮,当用户点击按钮时,会触发JavaScript功能。我希望在用户按下Enter键时也能触发该功能 我不确定的是,是将这两个输入设置为一个表单,并在onSubmit属性中使用“return functionname()”,还是按文本框中的Enter键进行捕获。我的直觉是使用表单和onSubmit,它的优点是在浏览器级别处理独特的提交方法,但我不确定是否有任何标准/最佳实践阻止了这一点 即:Javascript 在Submit上捕获表单还是捕获Enter键?,javascript,html,forms,Javascript,Html,Forms,我有一个页面,包含一个文本框和一个按钮,当用户点击按钮时,会触发JavaScript功能。我希望在用户按下Enter键时也能触发该功能 我不确定的是,是将这两个输入设置为一个表单,并在onSubmit属性中使用“return functionname()”,还是按文本框中的Enter键进行捕获。我的直觉是使用表单和onSubmit,它的优点是在浏览器级别处理独特的提交方法,但我不确定是否有任何标准/最佳实践阻止了这一点 即: <form id="myform" onsubmit="retu
<form id="myform" onsubmit="return myFunction()">
<input type="text" id="mytextbox">
<input type="submit" id="mysubmit" value="Go">
</form>
vs
这是您正在寻找的解决方案
$(document).ready(function(){
$('#mytextbox').keypress(function(ev){
//If user pressed Enter Key then trigger Submit click
if(ev.keyCode==13)
$('#mysubmit').click();
});
});
有两种标准方法可以做到这一点: 正如你所说:
<form id="myform" onsubmit="return myFunction()">
<input type="text" id="mytextbox">
<input type="submit" id="mysubmit" value="Go">
</form>
而且
<form id="myform">
<input type="text" id="mytextbox">
<input type="submit" id="mysubmit" value="Go" onclick="return myFunction()">
</form>
我的直觉是使用一个表单并提交
听起来你的直觉与一般做法一致
它的优点是在浏览器级别处理独特的提交方法
这使得它健壮可靠,也许可以解释为什么它是常见的做法
但我不确定是否有任何标准/最佳实践不鼓励这样做
当然,这两种方式都没有官方标准(但这也不是他们的工作)。“最佳”是一个基于比较标准的相对术语。如果您的标准包括:健壮性、不公平的支持、易于维护和简单性,那么将提交侦听器放在表单上可能排名很高
PS:要使表单控件成功(即,要将其值与表单一起提交),它必须有一个名称。ID是可选的(通常不是必需的) 按enter键提交表单时没有默认功能。当按下enter键时,您必须手动执行此操作。因此,您可以在onSubmit中使用javascript功能。进行否决投票的最快方式是在问题上没有jQuery标记或在OP中没有提及的情况下给出jQuery答案。在这种情况下,这也是不相关的。发帖人想知道的是一种策略,而不是实现。我很感激你的回答,但我想澄清的是最好的实现方法,而不是实际的代码。另外,我更倾向于使用
$(“#myform”).submit()
而不是$(“#mysubmit”).click()代码>。根据我的知识,最好的方法是您可以将按钮设置为默认提交,这样当用户按Enter键时,将自动触发默认按钮。这里是设置默认按钮@MRaja的参考。这完全不需要脚本,这是所有正在使用的浏览器的默认行为。这篇文章不是“按下enter键时如何提交表单”,而是“附加提交侦听器的最佳策略是什么”。按enter键是用户触发提交事件的不同方式的一个示例。
<form id="myform">
<input type="text" id="mytextbox">
<input type="submit" id="mysubmit" value="Go" onclick="return myFunction()">
</form>