2013-07-04 2 views
0

인라인 이벤트 처리기를 제거하고 이벤트 리스너로 교체합니다. 페이지가로드 될 때 TypeError: document.getElementById(...) is null 오류 메시지가 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 이벤트 리스너를 추가하는 중 오류가 발생했습니다. 요소가 null이라고합니다.

<input type="text" name="us" id="us" />

//adding function listeners 
var inputEl = document.getElementById('us'); 
inputEl.addEventListener('keyup', availability, false); // error here 

function availability(name, availabilityDiv) 
{ 
    var name = document.getElementById('us').value; 
     //code sniped 
} 

나는 내 코드는 이렇게 설명해 보자 오히려 이상한 알고있다. 문자가 입력 필드에 입력 될 때마다 함수를 호출하고 입력 된 문자를 함수로 인수로 전달하려고합니다. 이렇게하는 것이 더 좋은 방법이라면 말하십시오. 스크립트가 요소 앞에 오는 경우

+1

에서 실행되어야하는 다음 요소는 때 존재하지 않습니다 스크립트가 실행되므로'null'이며 코드가 실패합니다. 이해가 되니? – Esailija

+2

가용성이 잘못되었습니다. –

+0

대단히. 그렇다면 인라인 이벤트 핸들링에서 액션 리스너를 사용하는 방법은 무엇입니까? – Celeritas

답변

1

머리글에 스크립트를 삽입하는 경우는, 다음은 onload 이벤트

window.onload = function(){ 

    //adding function listeners 
    var inputEl = document.getElementById('us'); 
    inputEl.addEventListener('keyup', availability, false); // error here 

    function availability(name, availabilityDiv) 
    { 
     var name = document.getElementById('us').value; 
      //code sniped 
    } 

} 
관련 문제