2012-07-11 22 views
8

Ich habe ein HTML-Formular. Benutzer können das Formular in englischer und persischer Sprache ausfüllen. aber ich habe eine Captcha-Eingabe, die Benutzer sollten es in Englisch ausfüllen.ändern Tastaturlayout mit Javascript

Wenn das Tastaturlayout des Benutzers persisch ist, sollte in diesem Feld in Englisch geändert werden, so dass ich einige codierte, die das Tastaturlayout bei der Fokussierung auf diesen Eingabetext ändern müssen.

Ist es möglich, das Tastaturlayout mit Javascript zu ändern?

+2

Ja, Sie können, erfassen Drücken und checken Sie jeweils die Tasten, die die Zeichen ersetzen, die dem neuen Tastaturlayout entsprechen, auf das Sie ausgerichtet sind. –

+0

Sie können das Layout der Tastatur nicht mit Javascript erkennen/ändern. – Ramesh

+0

Ich habe ein großes Problem, es gibt einige verschiedene persische Tastaturlayout in Windows und Linux, und dies erschweren Zeichenersatz. :( –

Antwort

6

Sie werden nicht in der Lage sein, das Tastaturlayout mit JS zu ändern, aber Sie können die keydown Ereignis erfassen und den Charakter mit so etwas wie diese ersetzen:

http://jsfiddle.net/SxdKZ/

$('textarea').on('keydown', function(e){ 

    console.log(e.keyCode); 
    if(e.keyCode == 90){ 
     e.preventDefault(); 
     $(this).append('y').focus(); 
    } 
    if(e.keyCode == 89){ 
     e.preventDefault(); 
     $(this).append('z').focus(); 
    } 

});​ 
+0

danke, aber es gibt einige verschiedene persian Tastaturlayout in Windows und in Linux, so dass die keyCodes sind nicht die gleichen in Windows und Linux zu ersetzen Thema leicht wie Ihr Code :( –

+2

gut ... Sie könnten das Betriebssystem mit 'navigator.platform' :) , wenn es ist nur für eine Aufnahme, etwas wie http://mottie.github.com/Keyboard/ könnte eine einfachere Lösung? –