2013-04-05 14 views
5

キーボードからオプションを検索:私は、キーボード上のselectタグと押して「მ」展開すると私はグルジアのオプションを持っているselectタグ持っているときに、異なる文字エンコーディング

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

を、私は "から始まりオプションを検索します¬ "文字が英語で書かれているときは、デフォルトですべてうまく動作します。どのように修正するのか分かりませんが、何かを提案できますか?

+0

あなたが使用したjsコードを提供できますか? –

+2

これはおそらく使用しているブラウザによって異なります。あなたができることについて考えることができる唯一のことは、HTTPヘッダーで文字セットが正しく宣言されていることを確認することです。 – RoToRa

+0

最初にhtml文字セットを希望する言語に変更してからもう一度やり直してください – beaver

答えて

1

私は私のキーボード上のグルジア文字を持っていないが、少なくとも私はロシア語を知っている:

HTML:

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

JS:

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; 
     } 
    } 
}); 

と作業例:http://jsfiddle.net/wdSQv/1/を(Firefox 20でテスト済み)

+0

keypressイベントが呼び出されません。ロシア語が言語バーに設定されている場合はjsなしで動作します。私は言語バー – karaxuna

+0

@ karaxunaで設定した英語の言語で作業したいと思っています。キーボードからすべての文字をマップする必要があります。答えは – micnic

+0

+1ですが、そこにブレークポイントを置くと、 keypressイベントは呼び出されません – karaxuna

関連する問題