change keyboard layout with javascript
Solution 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:
$('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();
}
});
Solution 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');
}
});
hd.
Updated on June 15, 2022Comments
-
hd. almost 2 years
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??
-
Andreas Wong almost 12 yearsYes you can, capture each keypress and check e.which then replace the characters to correspond to the new keyboard layout you are targetting.
-
Ramesh almost 12 yearsYou cannot detect / change the key board layout through javascript.
-
hd. almost 12 yearsI have a big problem, there are some different persian keyboard layout in windows and in linux and this complicates character replacement. :(
-
nnnnnn almost 12 yearsI'm curious: what do Persian users usually do with English language websites that use captchas? I would think it is up to the individual user to switch as needed (in Windows this can be done easily via the language bar that can be displayed on the side of the taskbar).
-
hd. almost 12 yearsThey press Alt+Shift to change the system keyboard layout to english and then enter captcha,but I want to do this switch by sript not by hand !
-
-
hd. almost 12 yearsthank you but there are some different persian keyboard layout in windows and in linux so the keyCodes aren't the same in windows and linux to replace theme easily like your code :(
-
gherkins almost 12 yearswell... you could detect the OS with
navigator.platform
:) if it's just for a capture, something like mottie.github.com/Keyboard might a an easier solution? -
BarryCap almost 3 years
e.keyCode
is now deprecated. OtherKeyboardEvent
properties likeKeyboardEvent.code
replaced it. Check this link for more information.