0

特殊文字 (「/」、「\」など) や「$」(shift+4)、「#」(shift+3) の入力を制限する必要がありますが、「A」などの大文字も許可する必要があります。 (シフト + a) など

以下のコードは機能しますが、「シフト」を許可しているため、「$」とすべて (「シフト + 0」から「シフト + 9」まで) を制限していません。

HTML

<input type="text" id="txtboxToFilter" />

Jクエリ

<script type="text/javascript" language="javascript">
$(document).ready(function () {
    $("#txtboxToFilter").keydown(function (event) {
        // Allow: backspace, delete, tab, escape, and enter
        if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
        // Allow: Ctrl+A
        (event.keyCode == 65 && event.ctrlKey === true) ||
        // Allow: home, end, left, right
        (event.keyCode >= 35 && event.keyCode <= 39)) {
            // let it happen, don't do anything
            return;
        }
        else {
            // stop the keypress for special character "/", "\"
            if (event.keyCode >= 190) {
                event.preventDefault();
            }
        }
    });
});

4

1 に答える 1

0

コメントで述べたように、特定の文字の使用を防止したい場合は、特定のキーの使用を制限しようとするのではなく、文字レベルで問題を解決する必要があります。私はこの fiddleのようなことをします。正規表現を使用して、不要な文字をすべて置き換えています。入力中にユーザーの邪魔をするのは少し奇妙なのでchange()、テキスト フィールドがフォーカスを失ったときにトリガーされる which を使用しました。

$("#text").change(function() {
    $("#text").val($("#text").val().replace(/\\|\//g, ""));
});​
于 2012-08-07T16:38:11.420 に答える