如何将keypress和event.preventDefault()一起用于限制字符输入?

时间:2014-04-20 17:03:29

标签: javascript html

我无法弄清楚我应该在这个简单的字符限制功能上使用什么事件处理程序。当我达到最大值时,我无法删除任何字符,因为它似乎被视为keypress事件。我该如何解决这个问题?

var mytext = document.getElementById("mytext");

mytext.addEventListener('keypress', function (evt) {
    if (mytext.value.length >= 8) {
        evt.preventDefault();
    }

});

这是JSFiddle http://jsfiddle.net/j93qU/2/

3 个答案:

答案 0 :(得分:2)

我只想使用html输入maxlength属性

<input type="text" maxlength="8">

答案 1 :(得分:0)

当人们开始使用脚本时,他们忘记做基本的事情了!

使用内置的基本maxlengthsize属性。

<input type="text" maxlength="8" size="8" />

在您的情况下,仅将preventDefault()限制为字符,或允许使用 Del Backspace 等特殊字符。

mytext.addEventListener('keypress', function (evt) {
    if (mytext.value.length >= 8 && (evt.keyCode != 8 || evt.keyCode != 37 || evt.keyCode != 46)) {
        evt.preventDefault();
    }

});

答案 2 :(得分:0)

尝试

var mytext = document.getElementById("mytext");

mytext.addEventListener('keypress', function (evt) {
    if (mytext.value.length >= 8 && (evt.keyCode != 8 || evt.keyCode != 37 || evt.keyCode != 46)) {
        evt.preventDefault();
        return false;
    }

});

event.which属性规范化event.keyCodeevent.charCode。建议观看event.which键盘输入键。