1

私はテキストエリアで遊んでいて、押されたキーがバックスペースまたは削除キーでない限り、ユーザーが 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 では機能しますが、何らかの理由でローカルでは機能しません。一方、削除はまだ機能しません。

4

1 に答える 1

4

やっと見つけた……。

小さなタイプミスであるevt.keycodeを使用しています

 else if(evt.keyCode == 46 || evt.keyCode == 8)  // 46 = delete, 8 = backspace.

乾杯

于 2012-11-29T03:05:52.050 に答える