2009-11-04 7 views
1

jquery 및 keydown 이벤트를 사용하여 사용자 입력을 캡처하려고합니다. 이 항상 촬영 된 문자열은 하나 개의 문자로 '유효 기간'이 될 것으로 보인다는 사실을 제외하고, 노력하고 미주리에서Jquery를 항상 사용하는 텍스트 상자 텍스트 캡처

$(document).ready(function() { 
     $("#searchText").keydown(function() { 
      var filter = jQuery.trim($(this).val()); 
      if (filter.length > 3 || filter.length == 0) { 
       //hit the index action again and pass the keyword 
       $("#results").fadeOut("fast"); 
       $("#results").load("/Organisation/Index?keyword=" + filter, null, function() { 
        $(this).fadeIn("fast"); 
       }); 
      } 
     }); 
    }); 

난에 다른 키를 눌러야합니다 : 여기

내 코드입니다 실제로 내 행동에 전달하려는 텍스트를 가져옵니다.

미리 감사드립니다.

+0

당신은 전체 입력, 아니면 그냥 모든 문자 사용자 유형을 포착하려고를? – TStamper

+3

대신'keyup'을 사용해보십시오. –

답변

8

문제는 'keydown'이벤트입니다. 값의 처리는 키가 눌려 졌을 때 행해지 기 때문에, 새롭게 눌려진 문자는 입력에 아직 반영되지 않습니다. 'keyup'을 사용하여 새로 누른 문자가 이미 값에 추가 된 후에 처리가 수행됩니다.

$(document).ready(function() { 
     $("#searchText").keyup(function() { 
      var filter = jQuery.trim($(this).val()); 
      if (filter.length < 3 || filter.length == 0) { 
       //hit the index action again and pass the keyword 
       $("#results").fadeOut("fast"); 
       $("#results").load("/Organisation/Index?keyword=" + filter, null, function() { 
        $(this).fadeIn("fast"); 
       }); 
      } 
     }); 
    });
0
또한 지금과 같은 다른 "키 스트로크"이벤트 잡으려고 바인드 방법을 사용하여 시도 할 수 있습니다

:

$("#searchText").bind("keyup click blur focus change paste", function(){ 
    //stuff 
}); 
관련 문제