1

テキストボックスがあります。特殊文字と最大 15 文字の長さを検証する必要があります。以下のコードを検証に使用しました。

<input type="text" class="textFlag" onkeyup="ValidateFlagText(this)"/>


//function checks special character entry and total 15
//character checks
function ValidateFlagText(textBoxObj) {

     //skip events for space and control keys
    if (event.keyCode != 37 && event.keyCode != 39) {
        var originalValue = textBoxObj.value;
        var charCount = textBoxObj.value.length;

        if (!(!originalValue.match(/[_\W]/))) {
            alert("special characters not allowed");
            textBoxObj.value = originalValue.substring(0, charCount - 1);
        }

        if (charCount > 15) {
            alert("maximum 15 characters allowed");
            textBoxObj.value = originalValue.substring(0, charCount - 1);
        }

        textBoxObj.value = textBoxObj.value.substring(0, 15);
    }
}

ここでの 1 つの問題は、私が保持して押しているかどうかです。私はフィドルを作成しました。 http://jsfiddle.net/mnsscorp/QGRHP/6/

前もって感謝します。

4

3 に答える 3

1

MDN のthisによると、「自動繰り返し」(キーを押したままにすると発生します) は、イベントを発生させます: キーダウン、キープレス、キーダウン、キープレス...そして最後にキーアップ。

新しい文字ごとに長さを確認したい場合は、キーダウンまたはキープレスのいずれかをリッスンするようにマークアップを変更します。

于 2013-04-29T07:25:29.570 に答える
1

onKeyup次のようにする必要があります。

<input type="text" class="textFlag" onkeydown="ValidateFlagText(this)"/>

onkeypress: キーが押されたときに JavaScript コードを呼び出す

onkeydown: キーが押された (まだ離されていない) ときに JavaScript コードを呼び出します。

onkeyup: キーが押された後に離されたときに JavaScript コードを呼び出します。

于 2013-04-29T07:22:42.230 に答える