2016-12-07 1 views
0

텍스트 상자 위에 스크립트 코드를 놓으면 작동하지 않지만 입력 필드 아래에 코드를 놓으면 작동합니다.입력란 아래에 스크립트 코드를 삽입 할 때만 keydown 스크립트가 작동합니까?

<script src="js/jQueryv3.1.1.js" type="text/javascript"></script> 

<script> 
$("input").keydown(function(e){ 
    alert(); 
}); 
</script> 

<input type="number" id="phoneNo" /> 

아래

하지만 작동하지 않습니다는

<script src="js/jQueryv3.1.1.js" type="text/javascript"></script> 

<input type="number" id="phoneNo" /> 

<script> 
$("input").keydown(function(e){ 
    alert(); 
}); 
</script> 
+1

질문을 잊어 버렸습니다. 하지만 어쨌든, 첫 번째 부분에서는 브라우저가 input 요소가 파싱되기 전에 스크립트를 실행하기 때문에'$ ("input")'은 그것을 찾을 수 없다. 위 스크립트를 작성하려면 문서 준비 처리기를 사용하여 DOM 요소에 액세스하려고 시도하는 모든 코드의 실행을 지연시켜야합니다. – nnnnnn

+0

@phpNoob 여기에서 jquery의 **. load(), .ready() ** 이벤트를 확인해야합니다. – Jai

+0

해냈어 고마워요 – phpNoob

답변

2

는 $ (문서) .ready와 코드 랩() 같은 :

$(function() { 
    $("input").keydown(function(e){ 
     alert(); 
    }); 
}); 

또는

$(document).ready(function() { 
    $("input").keydown(function(e){ 
     alert(); 
    }); 
}); 

jQuery를 당신이 일하기 전에를 정의 할 때 입력 요소를 찾을 수 없습니다 전자 입력 상자,하지만 입력 상자 다음에 입력 상자에 대한 정보를 얻을 때 같은 것을 씁니다.

희망이 있으면 도움이 될 것입니다.

0

당신은 당신이, 당신이

$("input").keydown(function(e){ 
    alert(); 
}); 

를 사용할 수있는 alreadt에 정의 된 요소에 핸들러를 첨부 할 가정 WORKS 이미 사용 된. 당신이 (당신이 나중에 만드는 일) 동적 요소에 이벤트 핸들러를 연결하려는 경우

그러나, 당신은 사용할 수 있습니다

$(document).on('keydown', 'input', function(e){ 
    alert(); 
}); 
+0

OP 코드에는 동적으로 생성 된 요소가 포함되어 있지 않습니다. – nnnnnn

관련 문제