2016-07-04 100 views
0

我有這個HTML:jQuery的搜索輸入

<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

如果你開始輸入a,然​​後改變主意,刪除並開始輸入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

謝謝!有效 –