Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Submit上捕获表单还是捕获Enter键?_Javascript_Html_Forms - Fatal编程技术网

Javascript 在Submit上捕获表单还是捕获Enter键?

Javascript 在Submit上捕获表单还是捕获Enter键?,javascript,html,forms,Javascript,Html,Forms,我有一个页面,包含一个文本框和一个按钮,当用户点击按钮时,会触发JavaScript功能。我希望在用户按下Enter键时也能触发该功能 我不确定的是,是将这两个输入设置为一个表单,并在onSubmit属性中使用“return functionname()”,还是按文本框中的Enter键进行捕获。我的直觉是使用表单和onSubmit,它的优点是在浏览器级别处理独特的提交方法,但我不确定是否有任何标准/最佳实践阻止了这一点 即: <form id="myform" onsubmit="retu

我有一个页面,包含一个文本框和一个按钮,当用户点击按钮时,会触发JavaScript功能。我希望在用户按下Enter键时也能触发该功能

我不确定的是,是将这两个输入设置为一个表单,并在onSubmit属性中使用“return functionname()”,还是按文本框中的Enter键进行捕获。我的直觉是使用表单和onSubmit,它的优点是在浏览器级别处理独特的提交方法,但我不确定是否有任何标准/最佳实践阻止了这一点

即:

<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>