change keyboard layout with javascript

2020-02-05 07:51发布

问题:

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

回答1:

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

});​


回答2:

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