2016-07-04 4 views
0

검색 입력 :jQuery를 나는이 HTML 가지고

<input type="text" placeholder="Type country name" class="Cinp"> 
<div class="contres"></div> 

그리고이 jQuery 코드 : 만 첫 글자를 입력 할 때

var country_list= ["Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan"]; 
var results = []; 
var selected= []; 

$(".Cinp").keyup(function(e) { 
    var value=$(this).val(); 

    if (e.which >= 65 && e.which <= 90 || e.which==8) { 
     if (value.length!=0) { 
      function filter(letter) { 
       var len = country_list.length; 
       var i = 0; 

       while(i < len) { 
        if (country_list[i].indexOf(letter) == 0 || country_list[i].indexOf(letter.toUpperCase()) == 0) { 
         results.push(country_list[i]); 
         $(".contres").append(country_list[i]); 
        } 
        i++; 
       } 
      } 
     } 
    } 
} 

그래서 그것을 완벽하게 작동을하지만 Az를 입력 할 때 반환해야 Azerbaijan 만 입력하면 a으로 시작하는 모든 국가가 반환됩니다.

+0

모두 어떻게 필터 기능을 호출 하느냐에 달려 있습니다. 매개 변수를 가져 오는 필터 함수는 어디에서 왔습니까? 내 말은, 어디서 '편지'를 가져 왔니? –

+0

입력 값에서 @VinodBhavnani –

+0

입력을 시작한 다음 마음이 바뀌고 삭제하고 d를 입력하면 어떻게됩니까? 나는 a와 d 둘 다로 시작하는 나라를 보게 될 것이라고 생각합니다. 제 생각에는 결과 목록을 지우지 않고 그 결과 만 추가하기 때문입니다. 사용자가 키를 누른 다음 다시 만들 때마다이 키를 지워야합니다. 그렇지 않으면 모든 이전 결과가 그대로 유지됩니다. – ADyson

답변

0
  $(".contres").clear(); /// whether need that? 

      while(i < len) { 
       if (country_list[i].indexOf(letter) == 0 || country_list[i].indexOf(letter.toUpperCase()) == 0){ 
        results.push(country_list[i]); 
        $(".contres").append(country_list[i]); 
        } 
        i++; 
       } 
      } 
+0

고마워! 효과가있다. –