Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

change keyboard layout with javascript

I have a html form. Users can fill in the form in both english and persian languages. but I have a captcha input that users should fill it in english.

If the user's keyboard layout is persian what is typed in this field should change to english so I need some coded that change the keyboard layout on focusing on this input text.

Is it possbile to change keyboard layout with javascript??

like image 904
hd. Avatar asked Jul 11 '12 06:07

hd.


2 Answers

You won't be able to change the keyboard layout using JS, but you can capture the keydown event and replace the character with something like this:

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

});​
like image 177
mgherkins Avatar answered Nov 11 '22 09:11

mgherkins


I have made the default language of all the input text fields to Arabic. If you want to use English language for any text field, you will have to assign a class "en" to that particular text field.

Just copy the following code and also download the js file from http://farsitype.ir/FarsiType.js

/******** Make all the input text fields arabic ******/
$('input[type=text]').each(function(index, value){
 if (value.className != 'en') {
  $(this).attr('Lang','fa');
 }
});
like image 33
Umair Qureshi Avatar answered Nov 11 '22 10:11

Umair Qureshi