Reputation: 18296
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??
Upvotes: 17
Views: 24678
Reputation: 39
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');
}
});
Upvotes: 3
Reputation: 14973
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:
$('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();
}
});
Upvotes: 13