2011-06-30 77 views
1

我有下面的代碼,並很好奇,如何強制輸入相匹配的自動完成的內容:jQuery UI自動完成如何在現有設置中實現必須匹配?

$("#foo").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url: "index.pl", 
      dataType: "json", 
      data: { 
       type: 'foo', 
       term: request.term 
      }, 
      success: function(data) { 
       response($.map(data.items, function(item) { 
        return { 
         value: item.id 
        } 
       })); 
      } 
     }); 
    }, 
    minLength: 1 
}); 

回答

0

回答這個問題的人是誰在2013年時這個問題絆倒的好處(對,沒錯! )

$("#my_input").autocomplete({ 
    source: '/get_data/', 
    change: function(event, ui) { 
     var source = $(this).val(); 
      var temp = $(".ui-autocomplete li").map(function() { return $(this).text()}).get(); 
     var found = $.inArray(source, temp); 

     if(found < 0) { 
      $(this).val(''); //this clears out the field if non-existing value in <select><options> is typed. 
     } 
    } 
}); 

說明: 地圖()方法創建填充無論是從函數返回一個jQuery對象(在這種情況下,每個<li>元素的文本內容)。

get()方法(不傳遞參數時)將該jQuery對象轉換爲實際的Array。

這裏是我看到解決方案的原始link

我希望這會有所幫助。謝謝!

相關問題