如何将输入“shift + 0”限制为“shift + 9”,但“shift”应该接受(如“shift + A”或其他)

时间:2012-08-07 15:51:15

标签: jquery

我需要限制特殊字符的输入(例如" /"," \")以及" $" (shift + 4),"#"(shift + 3),但也需要允许大写字母,如" A" (转+ a)等。

以下代码有效,但我不限制" $"所有(从" shift + 0"到" shift + 9")因为我允许" shift",给我一些回应如何做到这一点,

HTML

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

Jquery的

<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();
            }
        }
    });
});

1 个答案:

答案 0 :(得分:0)

如评论中所述,如果要阻止使用特定字符,则应该在字符级别上攻击问题,而不是试图限制使用特定键。我会做in this fiddle之类的事情。我使用regular expression来替换所有不需要的字符。因为在打字时打断用户有点奇怪,我使用了change(),当文本字段失去焦点时会触发它。

$("#text").change(function() {
    $("#text").val($("#text").val().replace(/\\|\//g, ""));
});​