Javascript 使用';输入';在键盘上提交表单

Javascript 使用';输入';在键盘上提交表单,javascript,html,Javascript,Html,我有一个文本字段和一个按钮。该按钮调用名为validate()的函数。它目前只有当你点击按钮时才起作用,我正试图用键盘上的“回车键”将其更改为接受键盘输入。我已经从教程中写了以下内容,但它不起作用-有任何指针吗 <input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" /> function handle(e){ if(e.keyCode === 13){

我有一个文本字段和一个按钮。该按钮调用名为validate()的函数。它目前只有当你点击按钮时才起作用,我正试图用键盘上的“回车键”将其更改为接受键盘输入。我已经从教程中写了以下内容,但它不起作用-有任何指针吗

<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />


 function handle(e){
    if(e.keyCode === 13){
    validate();
    }

函数句柄(e){
如果(如keyCode===13){
验证();
}
您可以使用getElementById onkeydown调用onkey函数,而不是将onkeypress函数放在输入字段本身上

<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />


 function handle(e){
    if(e.keyCode === 13){
    validate();
    }
document.getElementById('my_id')。onkeydown=函数(e){
如果(e.keyCode==13){
验证();
}
};
函数验证(){
警报(“hi”);
}

函数句柄(e)
{
如果(如keyCode===13)
{
验证();
}
}
函数验证()
{
警惕(“你好”);
}

您正在使用的代码很好,但是我假设您在
handle
函数中有语法错误——缺少if语句的
}
。而且,最好同时检查
keyCode
which
函数句柄(e){
var key=e.keyCode | | e.which;
如果(如keyCode===13){
e、 target.blur();//blur
log('继续验证()');
}
}
函数clearT(){
}

您还可以将验证移动到表单的onsubmit事件。这种方法消除了捕获和查询击键的需要。详情如下:

<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />


 function handle(e){
    if(e.keyCode === 13){
    validate();
    }
将表单的onsubmit事件连接到javascript函数:

<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />


 function handle(e){
    if(e.keyCode === 13){
    validate();
    }
HTML

<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />


 function handle(e){
    if(e.keyCode === 13){
    validate();
    }
<form id="world" name="world" onsubmit="validate(event)">
    <input type="text" name="textField" />
    <input type="submit" value="Submit" />
</form>

因此,当HTML表单具有焦点时,您可以单击Submit或按Enter键,就会调用validate方法,并在页面上处理多个表单。在我看来,这是一个更干净的解决方案,因为它使用浏览器默认行为,而不是编写(重写?)密钥密钥管理代码。

在甲烷库看来是正确的-我实际上已经让它在没有此功能的情况下工作了,但只要你点击enter键,正确的操作就会发生(弹出一条消息),但随后该字段就会被清除,它马上就消失了!我不知道为什么会这样……什么东西会马上消失?你能做一个吗?抱歉@Angel太毛茸茸的了-我实际上也刚刚做了一个。不过,我刚刚发现了它的一个可用性缺陷。不管怎样,在我按下键盘上的enter键后,我会失去对文本字段的关注吗?你可能只需要使用Let me know,如果它对@Pinepplethanks如此有效的话!谢谢你,亚当。正如你指出的,我有一个语法错误!不过,我刚刚发现了它的一个可用性缺陷。不管怎样,当我在键盘上按enter键后,我会失去对文本字段的关注吗?@菠萝,我已经更新了小提琴
.blur()
使元素不聚焦
<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />


 function handle(e){
    if(e.keyCode === 13){
    validate();
    }