我无法弄清楚我应该在这个简单的字符限制功能上使用什么事件处理程序。当我达到最大值时,我无法删除任何字符,因为它似乎被视为keypress
事件。我该如何解决这个问题?
var mytext = document.getElementById("mytext");
mytext.addEventListener('keypress', function (evt) {
if (mytext.value.length >= 8) {
evt.preventDefault();
}
});
这是JSFiddle http://jsfiddle.net/j93qU/2/
答案 0 :(得分:2)
我只想使用html输入maxlength属性
<input type="text" maxlength="8">
答案 1 :(得分:0)
当人们开始使用脚本时,他们忘记做基本的事情了!
使用内置的基本maxlength
和size
属性。
<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.keyCode
和event.charCode
。建议观看event.which键盘输入键。