2012-09-17 3 views
0

onkeyup 이벤트 리스너 (자바 스크립트 기능, 경고하는 것)와 연결된 텍스트 상자가 있습니다. 예 :자바 스크립트의 이벤트 처리 문제

<input type='text' name='text1' onkeyup='exec(this.value);'/> 
<script> 
exec = function(textdata) { alert(textdata); } 
</script> 

이 경우 경고 메시지는 사용자가 키보드에서 무엇인가를 칠 때마다 나타납니다.

이벤트 처리기에서 몇 초 동안 사용하지 않으면 아무런 처리 방법도 없습니다. 즉,이 경우 사용자가 에 긴 텍스트를 입력 한 경우에만 경고 메시지가 표시되고 더 이상 무언가를 추가하려고 할 때 경고 메시지가 표시됩니다. 예를 들어, 이름을 입력하고 2 초 동안 기다린 후 경고 메시지가 나타나고 이름의 각 문자를 입력하는 동안 경고 메시지가 표시되지 않습니다.

답변

1

키를 누를 때마다 기능을 실행하려면 onchange 대신 onkeyup을 사용해야합니다. 당신이

<input type='text' name='text1' onkeyup='exec(this.value);'/> 
<script> 

var timer; //This needs to be a global variable 

exec = function(textData){ 

    clearTimeout(timer); 

    timer = setTimeout(function(){ alert(textData) }, 2000); 
} 
</script> 

사용자가 키는 함수가 호출되고 타이머는 클리어 (텍스트 박스에 문자를 입력) 누를 때마다 원하는 기능이보십시오. 그런 다음 타이머가 재설정 된 후 2 초가 경과하기 전에 아무 키나 다시 누르면 타이머가 2 초 후에 텍스트 상자의 값을 경고하도록 설정됩니다. Here은 작동중인 jsFiddle입니다.

0

코드에서 텍스트는 텍스트 상자를 떠날 때마다 경고를받습니다. 그것은 onchange의 동작입니다. 트리거되기 전에 항목에 집중할 필요가 있습니다.

onkeyupalert() 텍스트 상자에있는 동안 무언가를 누를 때마다.

+0

예 필요한 경우 죄송합니다. 고맙습니다. –

관련 문제