我很难弄清楚应该在这个简单的字符限制函数上使用什么事件处理程序。当我达到最大值时,我无法删除任何字符,因为它似乎被算作keypress
事件。我该怎么解决这个问题?
var mytext = document.getElementById("mytext");
mytext.addEventListener('keypress', function (evt) {
if (mytext.value.length >= 8) {
evt.preventDefault();
}
});
这是JSFiddlehttp://jsfiddle.net/j93qU/2/
我只需要使用html输入的maxlength属性
<input type="text" maxlength="8">
尝试
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
进行规范化。建议观看用于键盘键输入的事件。
当人们开始使用脚本时,他们忘记了做基本的事情
使用内置的基本maxlength
和size
属性。
<input type="text" maxlength="8" size="8" />
在您的情况下,请将preventDefault()
限制为个字符,或者允许使用特殊字符,如Del和Backspacemytext.addEventListener('keypress', function (evt) {
if (mytext.value.length >= 8 && (evt.keyCode != 8 || evt.keyCode != 37 || evt.keyCode != 46)) {
evt.preventDefault();
}
});