2013-06-06 2 views
2

은의 간단한 HTML 입력 필드를 생각해 보자방지 및 onblur 이벤트 occurency 동안

<input type="text" onblur='alert("hello");' /> 

마우스가이 입력 필드에 당신이 브라우저에서 새 탭을 열 때 (크롬, IE, ...), onblur 이벤트가 트리거되고 있습니다. 그런 방식으로 onblur 이벤트를 트리거하고 싶지 않습니다. 어떻게 이것을 피할 수 있습니까?

+0

'onfocusout()'을 사용할 수 있습니까 ??? – NINCOMPOOP

+0

onfocusout 이벤트는 브라우저에서 완전히 지원되지 않습니다 (아는 한). – Paramore

+0

초점을 잃으려면 다른 것을 클릭해야합니다. 좋은 해결책은 아니지만 클릭에 대해 몸에 청취자를 넣을 수 있습니다. –

답변

2

document.activeElement을 사용하여 요소가 실제로 DOM에서 포커스를 잃었는지 확인할 수 있습니다. (Browser compatibility도 매우 넓습니다.)

과 같이 할 수 귀하의 코드 :

HTML

<input type="text" onblur='blurred(this);' /> 

JS

function blurred(elem) { 
    if (elem != document.activeElement) { 
     alert("Bye !"); 
    } 
} 

참조, 또한,이 short demo .

+0

대단히 감사합니다. ExpertSystem, 정말 멋지 네요! – Paramore