2011-10-30 11 views
0

私はjquery autocomplete pluginを使用していますが、いくつかの問題があります: データが大量にあり、データを入力すると長い提案リストが表示され、スクロールバーが必要です:jqueryオートコンプリートで結果候補リストを取得

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

しかし、適切にIEでスクロールバーdoes't作業は(これは既知の問題だ、私はたくさんの検索が、have'ntは、関連する解決策を見つけました)。

私は提案リストのポップアップをブロックし、提案リストの結果を配列にしたり、同様のものを用意したり、コントロールで表示することに決めました。 私の問題は - どのようにそのリストを取得するのですか?

ありがとうございます!

+0

JQueryUIライブラリが提供するオートコンプリートを使用していないのはなぜですか?あなたが望むものを達成するためのイベント処理を提供します。 – pphanireddy

+0

あなたはこれを意味します - http://jqueryui.com/demos/autocomplete/#default? 私はそれらがすべて同じであると思っていました(私はjQueryの新機能です)。 どこからスタイルシートとコードをダウンロードできますか? – beMe

+0

あなたはappendToについて話していますか?あなたがいれば、それは私のために働かない。私はresaultをフォーマットする方法を見つけることができません。 btw、スクロールバーを追加する方法はありますか? – 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つは、リストを毎回消去することです。私はまだそれを行う方法を理解する必要があります。

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

それのどの面が機能していないのですか?これは、インターネット上の何千ものWebサイトで使用されているものです。通常、私はそれを使用して、それは働いていないようですが、私は通常、それが正しく構成されていません。 – arb

+0

私はこれをダウンロードしました:http://jqueryui.com/download - パッケージ全体。私のHTMLは次のようになります:これは私のコードです。 $( "#txtName")。オートコンプリート({source:names、appendTo: "#lst"}); – beMe

関連する問題