我需要限制特殊字符(如"/“、"\")以及"$”(shift+4)、"#"(shift+3)的输入,但也需要允许"A“(shift+a)等大写字符的输入。
下面的代码工作,但我没有限制"$“和所有(从"shift+0”到"shift+9"),因为我允许"shift",请给我一些如何这样做的响应,
<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();
}
}
});
});
发布于 2012-08-07 16:38:11
正如注释中提到的,如果要防止使用特定字符,则应该在字符级别上攻击问题,而不是试图限制特定键的使用。我会做一些像在这小提琴里这样的事情。我正在使用一个正则表达式来替换所有不需要的字符。因为在输入时打断用户是有点奇怪的,所以我使用了change(),它是在文本字段失去焦点时触发的。
$("#text").change(function() {
$("#text").val($("#text").val().replace(/\\|\//g, ""));
});https://stackoverflow.com/questions/11849613
复制相似问题