2012-10-10 2 views
0

jQuery에는 keypress, keyup ...에 대한 많은 예제가 있습니다. 이 예제는 텍스트 필드에 입력하는 방법입니다. 사용자가 텍스트 필드에 메시지를 입력하면 사용자가 입력하는 것처럼 표시 할 수 있지만 사용자가 입력하지 않으면 상황에 대한 메시지를 표시 할 수 없습니다. 여기 http://api.jquery.com/keypress/의 예는 다음과 같습니다Jquery 사용자가 텍스트 필드에서 활성화되어 있습니까?

$("#target").keypress(function() { 
    $("#other).html("User is typing"); 
}); 

<form> 
    <fieldset> 
    <input id="target" type="text" value="" /> 
    </fieldset> 
</form> 
<div id="other"> 
    Trigger the handler 
</div> 

그가 입력하지 않을 때이 코드 표시 메시지 (사용자가 입력되지 않은)을 변경할 수 있습니까? 뭔가 다른 옵션처럼 ....

편집 : 여기 내 생각입니다. 그것은 당신의 아이디어 (코드)와 비슷합니다. 도와 줘서 고맙다.

$(document).ready(function(){ 
    $("#target").keyup(function(){ 
     setTimeout(function(){ 
      $("#other").html("User is not typing"); 
     }, 2000); 
    }); 
    $("#target").keydown(function(){ 
    $("#other").html("User is typing"); 
    }); 
}); 
+0

참조 [이 (http://stackoverflow.com/q/667555/944681) –

답변

1

I 지연하여 제안` :

$("#target").keypress(function() { 
     $("#other").html("User is typing"); 
     $("#other").delay(1000).queue(function(n) { 
     $(this).html("User is not typing"); 
     n(); 
    }); 
    }); 

http://jsfiddle.net/CbGL9/9/

+0

약간의 최적화 된 버전 지연 (1000) .html (""); ' – Cyclone

+0

jup도 작동합니다. –

+0

코드가 제대로 작동합니다. 그러나 나는 너에게 묻는다 : 1 초 후에 무슨 일이 일어날 것인가. 답변 : 항상 "사용자는 타이핑하지 않습니다"라는 메시지가 표시됩니다. –

관련 문제