我正在玩一个文本区域并试图使它使用户不能超过maxLength,除非按下的键是退格键或删除键。问题是我的keyCode条件总是为真。为什么?
var maxLength = 500;
window.onload = init; // this seems to be a problem
commentBox.onkeydown = checkLength;
function checkLength(e)
{
var evt = e || window.event;
if(countText() < maxLength) //countText successfully returns number of nonwhitespace text.
return true;
else if(evt.keyCode == 46 || evt.keycode == 8) // 46 = delete, 8 = backspace.
return true;
else
return false;
}
这里有一个JSFiddle,以帮助更好地理解。删除键在 JSFiddle 中有效,但由于某种原因不能在本地工作。另一方面,删除仍然不起作用。
终于找到了....
您正在使用evt.keycode,这是一个小的拼写错误
else if(evt.keyCode == 46 || evt.keyCode == 8) // 46 = delete, 8 = backspace.
干杯