我需要限制特殊字符的输入(例如" /"," \")以及" $" (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();
}
}
});
});
答案 0 :(得分:0)
如评论中所述,如果要阻止使用特定字符,则应该在字符级别上攻击问题,而不是试图限制使用特定键。我会做in this fiddle之类的事情。我使用regular expression来替换所有不需要的字符。因为在打字时打断用户有点奇怪,我使用了change()
,当文本字段失去焦点时会触发它。
$("#text").change(function() {
$("#text").val($("#text").val().replace(/\\|\//g, ""));
});