2012-04-11 2 views
5

jquery에서 keydown 이벤트를 사용하지만 입력 언어에 대해 상태 비 저장 문제가 있습니다. 입력 내용이 영어 또는 히브리어 또는 아랍어인지 확인할 수 없습니다 ...? 키 코드 만 반환하고 문자를 가져올 수 없습니다.keydown 이벤트에서 다른 언어로 charecter 가져 오기

해결책이 있습니까?

+0

가에 jQuery 플러그인 [브라우저의 언어 설정을 결정]있다 (https://github.com/dansingerman/jQuery-Browser-Language). [this] (http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference) SO 스레드를 참조하십시오. 그런 다음 각 언어에서 원하는 문자의 키보드 코드를 파악할 수 있습니다. –

+0

나는 플러그인이 문제를 해결하지 못한다고 생각한다. 사용자는 입력하는 동안 언어를 변경할 수 있습니다. 그래서, 나는 사용자에 의해 올바른 문자 입력을 얻을 수 없습니다. – assaqqaf

답변

5

실제 문자를 확인하려면 keydown 대신 keypress 이벤트를 사용해야합니다. keydown은 키 코드를 제공하지만 keypress은 사용자가 입력 한 문자를 나타냅니다.

또 다른 차이점은 사용자가 키를 누른 상태에서 keydown 이벤트가 한 번만 트리거되지만 삽입 된 각 문자에 대해 keypress 이벤트가 별도로 트리거된다는 것입니다.

가 여기에 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/) –

관련 문제