问题
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');
}
});
来源:https://stackoverflow.com/questions/26095432/change-keyboard-input-language-for-some-fields-with-javascript