我有一个文本字段和一个按钮。该按钮调用一个名为validate()的函数。它目前仅在您单击按钮时才有效,我正在尝试将其更改为使用键盘上的“输入”进行键盘输入。我从教程中写了以下内容,但它不起作用 - 任何指针?
<input type="text" name="textField" onkeypress="handle(event)" onfocus="clearT()" />
function handle(e){
if(e.keyCode === 13){
validate();
}
答案 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)
<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;
答案 2 :(得分:0)
您正在使用的代码很好,但我认为handle
函数中存在语法错误 - if语句缺少}
。并且,检查keyCode
和which
是一个好主意。
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;
答案 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管理代码。