2012-04-11 8 views
5

jqueryでkeydownイベントを使用しますが、入力言語にはステートレスな問題があります。インプットが英語またはヘブライ語かアラビア語であると判断できません...? キーコードだけを返し、文字を取得できません。のkeydownイベントで別の言語のcharecterを取得する

解決策はありますか?

+0

(https://github.com/dansingerman/jQuery-Browser-Language)[ブラウザの言語設定を決定する]にjQueryのプラグインがあります。 [this](http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference)SOスレッドを参照してください。次に、あなたはそれぞれの言語で必要な文字のキーボードコードを知ることができます。 –

+0

私はプラグインが問題を解決しないと思います。ユーザは入力中に言語を変更することができる。だから、私はユーザーによって正しい文字入力を取得することはできません。 – assaqqaf

答えて

5

実際の文字を確認するには、​​の代わりにkeypressイベントを使用する必要があります。​​はキーコードを提供しますが、keypressはユーザーが入力した文字を示します。

ユーザーがキーを押して保持すると、​​イベントが1回だけトリガーされますが、挿入された文字ごとに別々のイベントがトリガーされます。ここで

keypressイベントを使用しての例です:

<body> 
<form> 
    <input id="target" type="text" /> 
</form> 

<script src="http://api.jquery.com/scripts/events.js"></script> 
<script> 
    $("#target").keypress(function(event) { 
    var charCode = event.which; // charCode will contain the code of the character inputted 
    var theChar = String.fromCharCode(charCode); // theChar will contain the actual character 
    }); 
</script> 
</body> 
+1

これは私のために働いた。キーボードレイアウトを変更した後、ノルウェー文字とアラビア文字の両方を取得しました(ページにとどまっていて、間にリロードはありません)。 [こちらはjsFiddleです](http://jsfiddle.net/wvywU/) –

関連する問題