2011-10-30 92 views
0

我使用的是jquery autocomplete plugin,並且我遇到了一些問題: 我有很多數據,當我輸入數據時,顯示一個長的建議列表並且需要滾動條:在jquery自動完成中獲取結果建議列表

$("#txtName").autocomplete(data, 
            { matchContains: true, 
             minChars: 0, 
             max: 3000, 
             scroll: true, 
             //scrollHeight: 180, 
             width: 200 
            }); 

但是,滾動條開不正常工作在IE(這是一個已知的問題,我搜索了很多,但have'nt找到了相關的解決方案)。

因此我決定阻止建議列表彈出窗口,並將建議列表結果導入到一個數組或類似的東西中,並在我的控制中顯示它們。 我的問題是 - 如何獲得該列表?

在此先感謝!

+0

爲什麼不使用JQueryUI庫提供的自動完成?它提供事件處理來完成你想要的。 – pphanireddy

+0

你的意思是這個 - http://jqueryui.com/demos/autocomplete/#default? 我以爲他們都是一樣的(我是jQuery中的新手)。 從哪裏可以下載樣式表和代碼? – beMe

+0

你在說appendTo嗎?如果你是,它不適合我。我無法找到格式化resault的方法。 順便說一句,有沒有辦法添加一個滾動條? – beMe

回答

0

我找到了答案(其中的一部分,我仍然需要處理它)。 我先發布代碼,然後解釋:

$(function() 
{ 
    var names = [ 
     { label: 'Java', value: '1' }, 
     { label: 'C++', value: '2' }, 
     { label: 'C#', value: '3' }, 
     { label: 'Jquery', value: '4' }, 
     { label: 'Javascript', value: '5' }, 
     { label: 'ASP', value: '6' }, 
     { label: 'Pearl', value: '7' }, 
     { label: 'VB', value: '8' }, 
     { label: 'Ajax', value: '9' }, 
     { label: 'Json', value: '10' }]; 

    $("#txtName").autocomplete({ 
     minLength: 2, 
     source: names, 
     delay: 500 
    }).data("autocomplete")._renderItem = function (ul, item) 
    { 
     //add data to my control, need to take care of earasing each time. 
     var elOptNew = document.createElement('option'); 
     elOptNew.text = item.label; 
     elOptNew.value = item.value; 
     lst.add(elOptNew); 

     //this code here adds the items to the popup thats built in.(it's written in jquery-ui.min.js) 
     return $("<li></li>") 
      .data("item.autocomplete", item) 
      .append("<a>" + item.label + "</a>") 
      .appendTo(ul); 
    }; 
}); 

HTML:

<input id="txtName"/> 
    <select id="lst" size='10'></select> 

增加的部分(_renderItem)將每次一個項目,所以你可以做任何你想做的事與一個項目。我決定將它添加到列表中。

其他未做的事情是每次擦除列表。我仍然需要弄清楚如何做到這一點。

1

快速查看該插件的API,我沒有看到任何事件讓您處理來自服務器回調的響應。您可能需要切換並使用official JQuery UI library來滿足您的自動完成需求。有一個appendTo選項可能適合您的需要。

+0

我找不到從哪裏下載腳本,我在這裏試過ftom:http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css http:// ajax .googleapis.com/ajax/libs/jquery/1.5/jquery.min.js http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js但自動完成功能不起作用正常。 – beMe

+0

它的哪個方面不起作用?這是在互聯網上成千上萬個網站上使用的那個。通常當我使用它,它似乎沒有工作,我通常只是讓它配置不正確。 – arb

+0

我下載了這個:http://jqueryui.com/download - 整個包。我的html如下所示:這是我的代碼:名稱與數據的數組。 $(「#txtName」)。autocomplete({source:names,appendTo:「#lst」}); – beMe