[检查Javascript中文本区域输入时的按键事件监听器

问题描述 投票:0回答:1

我想为textarea内的键盘上的每个按键检查两个条件:

1)如果是数字,则将其添加到文本区域。

2)如果还有其他问题,请向用户发送警报。

HTML中的textarea标记为:

<textarea id="input" placeholder="EnterInput"></textarea>

我在JS文件中写的是:

document.getElementById("input").addEventListener("keypress", checkInput(e));
function checkInput(keyPressed){
    if(keyPressed < 48 || keyPressed > 57){
        alert("Wrong input! The charcted entered is not a number.");
    }
}
javascript html keypress addeventlistener
1个回答
3
投票

[具有(),您将立即调用侦听器功能

document.getElementById("input").addEventListener("keypress", checkInput(e))
                                                                         ^^ INVOKED!

[event将自动传递给您的函数,因此只需省略:

document.getElementById("input").addEventListener("keypress", checkInput)

此外,whichevent属性存储键码(在大多数浏览器上,如@TJCrowder所指出的,较旧的浏览器可能使用keyCode属性:

function checkInput(event) {
    var keyCode = event.hasOwnProperty('which') ? event.which : event.keyCode;
    //Now check
}
© www.soinside.com 2019 - 2024. All rights reserved.