私はテキストエリアで遊んでいて、押されたキーがバックスペースまたは削除キーでない限り、ユーザーが maxLength を超えないようにしようとしています。問題は、keyCode 条件が常に true になることです。何故ですか?
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 では機能しますが、何らかの理由でローカルでは機能しません。一方、削除はまだ機能しません。