2

본문 요소에 지정된 웹 페이지에 키 누르기 핸들러가 있습니다. 나는 그것이 웹 페이지 어디에서나 활성화되기를 정말로 원한다. 또는 그래서 나는 생각했다. 텍스트 입력 양식의 키 누르기 이벤트는 본문 핸들러를 활성화합니다. 이는 의미가 있지만 원하지 않는 것입니다.본문에 지정된 키 누르기 핸들러에서 양식 필드 제외

이상적으로, 필자는 body 요소에 지정된 keypress 처리기를 유지하고 입력 양식을 어떻게 든 제외하려고합니다. 입력 수준에서 이벤트를 중지하고 본문으로 전파되지 못하게하는 방법이 있습니까? (심지어 올바른 방법은 HTML DOM 이벤트를보고 있다는 점이다?)

답변

6

단순히 키를 누를 처리기에서 이벤트를 트리거하는 요소를 확인하고 입력 요소 필터링하기 쉬울 것입니다 :

document.onkeypress = function(evt) { 
    evt = evt || window.event; 
    var target = evt.target || evt.srcElement; 
    if (!/INPUT|TEXTAREA|SELECT|BUTTON/.test(target.nodeName)) { 
     // Do stuff 
    } 
}; 
+0

글쎄, 그것은 너무 명백했다. 감사. – wfaulk