Javascript 使用String.FromCharCode时,jQuery返回未定义

Javascript 使用String.FromCharCode时,jQuery返回未定义,javascript,jquery,Javascript,Jquery,我有jQuery代码,必须将西里尔文输入更改为拉丁文。这是在数组中查找西里尔字符的位置,并用拉丁字符替换它,不幸的是,我收到了未定义的字符 $("input[name*=Name]").keypress(function (e) { if (e.charCode >= 1000 && e.charCode <= 1103) { var englishchars = ["a", "b", "v", "g", "d"

我有jQuery代码,必须将西里尔文输入更改为拉丁文。这是在数组中查找西里尔字符的位置,并用拉丁字符替换它,不幸的是,我收到了未定义的字符

$("input[name*=Name]").keypress(function (e) {
            if (e.charCode >= 1000 && e.charCode <= 1103) {
                var englishchars = ["a", "b", "v", "g", "d", "e", "yo", "zh", "z", "i", "yi", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "c", "ch", "sh", "shch", "i", "e", "yu", "ya"];
                var slavicchars = ["a", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "c", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ы", "э", "ю", "я"];
                var verified = String.fromCharCode(e.key).match(/[^а-яё]/);
                if (verified) {
                    e.preventDefault();
                    //If it's first char return, if not - get last char
                    var lastchar = this.value.length > 1 ? this.value.substr(-1) : this.value;
                    //Get position of Cyrillic char in array
                    var russiancharindex = jQuery.inArray(lastchar, slavicchars);
                    //Looking for corresponding Latin char
                    var englishcharindex = englishchars[russiancharindex];
                    this.value = this.value.replace(lastchar, englishcharindex);
                }
            }
        });

使用String.fromCharCodee.which。e、 键不是属性。

您在哪里得到未定义的值?var lastchar=this.value.length>1?this.value.substr-1:this.value;-此返回空字符串实际上未定义。对于按键事件,e.charCode将是正确的,但this.value将是注册新按键之前的值。尝试将.keypress更改为.keypup。。。。并将e.charCode更改为e.which。