2011-12-07 3 views
2

사용자가 텍스트 상자에서 @ 키를 눌렀을 때를 감지하려고합니다. 나는 같은 키 입력 이벤트를 처리하기 위해 JQuery를 사용할 수있다. ...@ 키를 눌렀을 때 감지

$('#target').keyup(function(event) { 

}); 

그러나 @ 문자를 테스트하려면 여기에서 무엇을해야합니까? event.which을 사용하여 키 코드를 얻을 수 있다는 것을 알고 있습니다. 그러나이 경우 나는 또한 교대를 확인해야 할 것입니다. 기술적으로 이것은 문제가 아니지만, @ 키가 다른 언어 설정으로 돌아갈 수 있다는 것과 저는 이것이 일치하지 않을 수도 있다는 것을 알고 있습니다. 어쩌면 내가 잘못 잘못 생각한 것일 수도 있고, 항상 그것에 의지 할 수 있습니다. SHIFT + 192?

이상적으로 내가 좋아하는 뭔가를하고 싶은 ... 나중에 쉽게 구성 할 수있는 도움을

event.something == "@"; 

감사하는 다음

+2

"키 누르기"대신 "키 누르기"를 볼 수 있습니까? 이것이 실제로 할 수있는 유일한 신뢰할 수있는 방법입니다 (특히 키 코드 매핑의 변형으로 인해 알 수 있습니다). – Pointy

답변

5

보십시오 (64)로, event.which == 64 검사는 기호의 아스키입니다 (테스트하지,하지만 작동합니다) 때 사용자 버전 키), 그가 텍스트 필드에 입력 한 마지막 문자가 @ 기호이면 그에 따라 작동합니다.

샤이

+0

'event.keyCode == "@". charCodeAt (0)'에 대해 문자열 값을 사용하여 변경할 수있게되었습니다.) – musefan

+0

:) 또한 좋은 해결책. 행복하게 문제가 해결되었습니다! –

4

당신은 테스트하는 대신 keypress 이벤트를 사용 할 수 있습니다 특정 문자가 아니라 키. 참조 :이 실패하면 (당신의 keyup 후 확인할 수

$("#target").keypress(function(event) { 
    if (event.which == 64) { 
    alert("weehee"); 
    } 
}); 

http://api.jquery.com/keypress/

+0

당신이 옳아요, 그게 내가 사용하고자하는 것입니다 : D – musefan

관련 문제