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