使用javascript选项卡和删除在mozilla中不起作用

时间:2014-07-12 07:58:49

标签: javascript asp.net

在下面的代码中,我有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);
    }
}

1 个答案:

答案 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

我建议您仔细阅读keypresskeydown/keyup以及charCodekeyCode之间的区别。

DEMO