使用键盘上的“Enter”提交表单

时间:2016-06-24 09:08:13

标签: javascript html

我有一个文本字段和一个按钮。该按钮调用一个名为validate()的函数。它目前仅在您单击按钮时才有效,我正在尝试将其更改为使用键盘上的“输入”进行键盘输入。我从教程中写了以下内容,但它不起作用 - 任何指针?

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


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

4 个答案:

答案 0 :(得分:1)

您可以使用 getElementById onkeydown 调用 onkey 函数,而不是在输入字段本身上放置onkeypress函数。

document.getElementById('my_id').onkeydown = function(e){
   if(e.keyCode == 13){
     validate();
   }
};

function validate(){
alert('hi');
}
<input type="text" id="my_id" name="textField" onfocus="clearT()" />

答案 1 :(得分:0)

&#13;
&#13;
<script>
function handle(e)
{
    if(e.keyCode === 13)
	{
    	validate();
    }
}
function validate()
{
	alert("hello");
}
</script>
<body>

<input type="text" name="textField" onkeypress="handle(event)" />
   
</body>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您正在使用的代码很好,但我认为handle函数中存在语法错误 - if语句缺少}。并且,检查keyCodewhich是一个好主意。

&#13;
&#13;
function handle(e){
    var key = e.keyCode || e.which;
    if(e.keyCode === 13){
        e.target.blur(); // blur
        console.log('proceeding to validate()');
    }
}
function clearT(){
}
&#13;
<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />
&#13;
&#13;
&#13;

答案 3 :(得分:0)

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

将表单的onsubmit事件连接到javascript函数:

<强> HTML

<form id="world" name="world" onsubmit="validate(event)">
    <input type="text" name="textField" />
    <input type="submit" value="Submit" />
</form>

<强>的JavaScript

function validate(event) {
    event.preventDefault();
    console.log('This is validate');
}

因此,当HTML表单具有焦点并且您单击“提交”或按Enter键时,将调用validate方法,并在页面上使用多个表单。似乎是一个更清洁的解决方案,因为它使用浏览器默认行为,而不是写(重写?)keystoke管理代码。