2012-02-28 6 views
0

Dojo의 새로운 on module을 사용하여 이벤트를 추가하기 시작했습니다. 그것은 잘 작동하지만 지금은 문제가 생겼어. keypress 이벤트를 사용할 때 눌려진 키에서 문자 값 (예 : "2"또는 "b")을 가져올 수없는 것 같습니다. 이전에 behavior 모듈과 connect 모듈을 사용한 다음 e.keyChar 또는 e.charOrCode을 사용하여 가져 왔지만 이제는 이 아니며입니다.Dojo의 모듈에서 Keypress 이벤트

내가 이벤트는 다음과 같이 설정 한 :이 모듈을 사용하는 경우

on(element, 'keypress', function(e) 
{ 
    console.log(e.keyCode); //works, but not what I need 
    console.log(e.charOrCode); //undefined 
    console.log(e.keyChar); //undefined 
}); 

이 어떻게 누른 키의 문자를받을 수 있나요?

답변

1

이 경우에는 원하는 문자 값을 얻기 위해 012-을 JS- 네이티브 String.fromCharCode()과 함께 사용하는 것이 좋습니다.

on(element, 'keypress', function(e) { 
    var character = String.fromCharCode(e.keyCode); 
    if (character === 'a') { // do a stuff } else { // do something else } 
} 
+0

답장을 보내 주셔서 감사합니다. 왜 나는'e.keyChar'를 더 이상 사용할 수 없는지 아십니까? 워드 프로세서는 어디에서나 언급되는 것처럼 보이지만,'on' 모듈에서는 사라졌습니다. 또 다른 질문은 모든 브라우저에서 안전합니까? 나는 프레임 워크/툴킷을 사용하는 것이 정상 동작을하기 때문에 좋아한다. – joakimdahlstrom

+0

이 [페이지] (http://unixpapa.com/js/key.html)의 3.1 절을 참조하십시오. 'keyCode'가 모든 브라우저에서 사용되는 유일한 값이라는 것을 알 수 있습니다. 이제는 각각 키에 대한 특수 처리가 있습니다. dojo에서 'keypress'이벤트 처리를 구현하는 코드를 살펴본 결과, 이러한 차이점을 정상화하려고 시도하고 있음을 확인할 수 있습니다. –

+0

아, 좋습니다. – joakimdahlstrom