2013-04-05 17 views
5

Ben Gürcüce seçenekleri vardır seçme etiketine sahip olduğunda მ". Karakterler İngilizce yazıldığında varsayılan olarak her şey iyi çalışıyor. Nasıl tamir edeceğimi bilmiyorum, bir şey önerebilir misin?arama seçeneği farklı karakter kodlama

+0

Kullandığınız js kodunu sağlayabilir misiniz? –

+2

Bu, muhtemelen kullandığınız tarayıcıya bağlıdır. Yapabilecekleriniz hakkında düşünebildiğim tek şey, HTTP başlığında doğru bir şekilde karakter kümesini belirlediğinizden emin olmaktır. – RoToRa

+0

html karakter kümesini başlangıçta istediğiniz dile çevirebilir ve tekrar denemek için – beaver

cevap

1

benim klavyede Gürcü karakterler yoksa, ama en azından Rus biliyorum:

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

Ve çalışan bir örnek: http://jsfiddle.net/wdSQv/1/ (Firefox 20'de test edilmiştir)

+0

tuşa basma olayını çağırmazsınız. rus dili dil çubuğunda ayarlanmışsa js olmadan çalışır. Ingilizce dil seti ile çalışmak istiyorum – karaxuna

+0

karaxuna, daha sonra klavyeden tüm karakterleri eşlemek zorunda kalacaksınız, fikrim için cevabımı – micnic

+0

+1 güncelledim ama eğer orada bir kırılma noktası varsa, bunu göreceksiniz hiçbir tuşa basma olayı – karaxuna

İlgili konular