我很难确定我的代码出了什么问题
function NavCode() {
if ((event.keyCode > 31 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65)|| (event.keyCode > 90 && event.keyCode < 97)|| (event.keyCode > 122 && event.keyCode < 164)||(event.keyCode > 166) )
event.returnValue = false;
return false;
}
我的目标是只允许 0-9 数字 A-Za-z 字母 ñÑ 和特殊字符 我成功实现了 0-9-A-ZazñÑ
使用此代码
function NavCode() {
if ((event.keyCode > 31 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65)|| (event.keyCode > 90 && event.keyCode < 97)|| (event.keyCode > 122 && event.keyCode < 164))
event.returnValue = false;
return false;
}
问题在于它还允许 165 以上的 ASCII 字符,例如。 ªº¿
但是当我添加 ||(event.keyCode > 166)
时,特殊字符不起作用,你能帮我只允许
0-9-A-ZazñÑ??我真的很难调试 java 脚本,因为我是新手
谢谢。
最佳答案
您在 if
上缺少大括号({
和 }
),因此您的 返回 false;
line 始终执行,因为不带花括号的 if
仅有条件地执行下一行。
试试这个:
function NavCode() {
if ((event.keyCode > 31 && event.keyCode < 48) ||
(event.keyCode > 57 && event.keyCode < 65)||
(event.keyCode > 90 && event.keyCode < 97)||
(event.keyCode > 122 && event.keyCode < 164)) {
event.returnValue = false;
return false;
}
}
现在return false;
仅当if
条件为true
时才会执行。
关于JavaScript OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20392433/