2014-04-16 3 views
3

name="notes"이있는 필드에서 탭 키를 누르면 함수를 호출하고 싶습니다.jQuery : 탭 키에서 이벤트 트리거

나는 다음을 시도했다. 그러나 이것은 (IE 9를 사용하여) 실행되지 않는다. IE 8과 IE 9에서이 작업을 수행하기 위해 내가 바꿀 필요가있는 것을 누군가가 말해 줄 수 있습니까?

$('input[name=notes]').keypress(function(e) { 
    var code = e.keyCode || e.which; 
    if (code === 9) { 
     e.preventDefault(); 
     myFunction(); 
    } 
}); 

미리 감사드립니다. Tim.

+2

. 콘솔에 오류가 있는지 확인 했습니까? –

+0

감사합니다. 브라우저 인 것 같습니다. 그것은 Firefox에서 잘 작동하지만 IE9와 크롬에서는 작동하지 않습니다. – user2571510

+0

myFunction은 이것으로 호출하고 싶은 JS 함수입니다. 이는 IE에서 아무 것도 경고하지 않고 전혀 실행되지 않으므로 문제가되지 않습니다. – user2571510

답변

13

내가 생각하는 문제는 듣고 자하는 이벤트 유형입니다. keypress 이벤트는 문자가 입력 텍스트에 기록 될 때 트리거되며, tab 키는 문자를 삽입하지 않습니다. 그냥 입력을 흐리게합니다. 더 읽기 here.

대신 keydown 이벤트를 찾고 있습니다.

this fiddle을 살펴보십시오. 당신을 시작하게하는 데 도움이 될까요?

JS 당신이 게시 한 코드 블록 아무 문제가 없습니다

$('input[name=notes]').keydown(function(e) { 
    var code = e.keyCode || e.which; 

    if (code === 9) { 
     e.preventDefault(); 
     myFunction(); 
     alert('it works!'); 
    } 
});