Javascript 不同字符编码时从键盘搜索选项

Javascript 不同字符编码时从键盘搜索选项,javascript,html,character-encoding,Javascript,Html,Character Encoding,我有一个选择标签,它有格鲁吉亚语的选项: <select> <option value="1"> პირველი </option> <option value="2"> მეორე </option> <option value="3"> მესამე </option> </select> პირველი მეორე მესამე 当我展开时,选择tag并按“მ

我有一个选择标签,它有格鲁吉亚语的选项:

<select>
    <option value="1"> პირველი </option>
    <option value="2"> მეორე </option>
    <option value="3"> მესამე </option>
</select>

პირველი 
მეორე 
მესამე 

当我展开时,选择tag并按“მ" 在键盘上,我要搜索从“”开始的选项მ“。当字符用英语书写时,默认情况下一切正常。我不知道如何修复它,你能提出建议吗?

我的键盘上没有格鲁吉亚字符,但至少我懂俄语:

HTML:


Ноль
Один
Два
Три
Четыре
Пять
Шесть
Семь
Восемь
Девять
JS:

document.getElementById('select').addEventListener('keypress',函数(事件){
变量长度=this.options.length;
var char=String.fromCharCode(event.which);
变量键={
a:‘ф’,
b:'我',
c:‘c’,
d:'f',
e:‘П’,
f:‘а’,
g:‘П’,
h:‘П’,
i:‘ï’,
j:'Of',
k:'а',
l:‘ψ’,
m:‘ú’,
n:‘τ’,
o:‘è’,
p:‘з’,
q:‘l’,
r:'κ',
s:',
t:'e',
u:'Γ',
v:‘m’,
w:‘ц’,
x:‘ч’,
y:‘嗯’,
z:‘!’,
'[': 'х',
']': 'ъ',
';': 'ж',
'\'': 'э',
',': 'б',
'.': 'ю',
'/': '.',
};
var key=keys[char];
对于(变量i=0;i

还有一个工作示例:(在Firefox 20中测试)

您能提供您使用的js代码吗?这可能取决于您使用的浏览器。我唯一能想到的是,您可以做的就是确保您在HTTP头中正确声明了字符集。您可以将开头的html字符集修改为所需的语言,然后再次尝试InkeyPress event not get ca如果在语言栏中设置了俄语,则可以不使用js。我想在语言栏中设置英语bar@karaxuna,然后您必须映射键盘上的所有字符,我更新了idea的答案+1,但如果您将断点放在那里,您将看到不会出现按键事件called@karaxuna,在firefox中它工作)用于其他浏览器应该有所不同
<select id="select">
    <option value="0">Ноль</option>
    <option value="1">Один</option>
    <option value="2">Два</option>
    <option value="3">Три</option>
    <option value="4">Четыре</option>
    <option value="5">Пять</option>
    <option value="6">Шесть</option>
    <option value="7">Семь</option>
    <option value="8">Восемь</option>
    <option value="9">Девять</option>
</select>
document.getElementById('select').addEventListener('keypress', function (event) {
    var length = this.options.length;
    var char = String.fromCharCode(event.which);
    var keys = {
        a: 'ф',
        b: 'и',
        c: 'с',
        d: 'в',
        e: 'у',
        f: 'а',
        g: 'п',
        h: 'р',
        i: 'ш',
        j: 'о',
        k: 'л',
        l: 'д',
        m: 'ь',
        n: 'т',
        o: 'щ',
        p: 'з',
        q: 'й',
        r: 'к',
        s: 'ы',
        t: 'е',
        u: 'г',
        v: 'м',
        w: 'ц',
        x: 'ч',
        y: 'н',
        z: 'я',
        '[': 'х',
        ']': 'ъ',
        ';': 'ж',
        '\'': 'э',
        ',': 'б',
        '.': 'ю',
        '/': '.',
    };
    var key = keys[char];
    for (var i = 0; i < length; i++) {
        if (this.options[i].innerHTML.charAt(0).toLowerCase() === key) {
            this.selectedIndex = i;
            break;
        }
    }
});