在下面的代码中,我有2个js函数用于接受字母和字母数字,其中当我在mozilla firefox中测试时,选项卡不能用于字母数字和制表符,退格键,删除不适用于字母表请帮助我解决问题
function alphanumeric(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 ||k == 9|| k == 32 || (k >= 48 && k <= 57));
}
function onlyAlphabets(e, t) {
try {
if (window.event) {
var charCode = window.event.keyCode;
}
else if (e) {
var charCode = e.which;
}
else { return true; }
if ((charCode > 64 && charCode < 91) || (charCode == 9 && charCode == 8)|| (charCode > 96 && charCode < 123))
return true;
else
return false;
}
catch (err) {
alert(err.Description);
}
}
答案 0 :(得分:1)
这适用于FF和Chrome:
function alphanumeric(e) {
var k;
k = e.keyCode || e.charCode;
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 9 || k == 32 || (k >= 48 && k <= 57));
}
function onlyAlphabets(e, t) {
try {
if (window.event) {
var charCode = window.event.keyCode;
} else if (e) {
var charCode = e.keyCode || e.charCode;
} else {
return true;
}
if ((charCode > 64 && charCode < 91) || (charCode == 9 || charCode == 8) || (charCode > 96 && charCode < 123)) return true;
else return false;
} catch (err) {
alert(err.Description);
}
}
在onlyAlphabetic()
(charCode == 9 && charCode == 8)
应该是:
(charCode == 9 || charCode == 8)
charCode
无法同时与两者相等。
在keypress
事件中,某些密钥有keyCode == 0
,因此必须使用charCode
。
我建议您仔细阅读keypress
和keydown/keyup
以及charCode
与keyCode
之间的区别。