2009-10-06 5 views
3

양식 유효성 검사 스크립트를 작성 중이며 onblur 이벤트가 발생하면 해당 필드의 유효성을 검사하려고합니다. 또한 이벤트 블 버블 링을 사용하여 각 개별 양식 필드에 onblur 이벤트를 첨부 할 필요가 없습니다. 불행히도, onblur 이벤트는 거품을 일으키지 않습니다. 똑같은 효과를 낼 수있는 우아한 솔루션을 아는 사람이 있는지 궁금합니다.이벤트 버블 링 및 onblur 이벤트

+0

각 양식 필드의 유효성 검사 기능이 다르거 나 모든 필드에서 동일합니까? – Peter

+0

그들은 모두 동일한 콜백 함수를 사용합니다. 콜백 함수는 유효성을 검사하는 방법 ("필수"또는 "정수"와 같은)을 알려주는 html 요소의 특정 클래스를 찾습니다. – spudly

답변

-2

AA는 단순히 양식의에 onblur 이벤트를 추가 할 수 있으며 검증에게 당신이

+1

확실합니까? 나는 그 형태가 전혀 흐려지지 않을 것이라고 생각하지 않았을 것입니다, 특히 그것이 처음부터 초점을 가질 수 없기 때문에. – nickf

+1

제 질문에서 말했듯이, onblur 이벤트는 거품이 나지 않습니다. 대답을하기 전에 질문을 완전히 읽으십시오. – spudly

8

:

if (myForm.addEventListener) { 
    // Standards browsers can use event Capturing. NOTE: capturing 
    // is triggered by virtue of setting the last parameter to true 
    myForm.addEventListener('blur', validationFunction, true); 
} 
else { 
    // IE can use its proprietary focusout event, which 
    // bubbles in the way you wish blur to: 
    myForm.onfocusout = validationFunction; 
} 

// And of course detect the element that blurred in your handler: 
function validationFunction(e) { 
    var target = e ? e.target : window.event.srcElement; 

    // ... 
} 

가 JUI에 대한 http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html를 참조하십시오 이 effect..thanks을 버블을 가지고로 싸이는

2

사용 '대한 focusOut'이벤트를 자세히 설명합니다.

0

onblur 이벤트와 버블 링을 사용하려면, 당신은 또는 addEventListener()를 사용하고 거짓에 useCapture를 매개 변수를 설정할 수 있습니다. 이처럼 :

yourFormInput.addEventListener('blur', yourFunction, false); 

파이어 폭스 (51) 아래는 onfocusout 이벤트를 지원하지 않습니다. 따라서 onblur 이벤트 대신 onfocusout을 사용하지 마십시오.

관련 문제