2

このオートコンプリート jquery ui スクリプトで結果を制限する必要があります (最大 10)。スライス関数を使用する必要があることはわかっていますが、スクリプト内に正しく配置できません。よろしくお願いします。

$(document).ready(function() {
    var myArr = [];

    $.ajax({
        type: "GET",
        url: "events.xml", // change to full path of file on server
        dataType: "xml",
        success: parseXml,
        complete: setupAC,
        failure: function(data) {
            alert("XML File could not be found");
            }
    });

    function parseXml(xml)
    {
        //find every query value
        $(xml).find("topevent").each(function()
        {
            //you are going to create an array of objects 
        var thisItem = {}; 
        thisItem['label'] = $(this).attr("label"); 
        thisItem['value'] = $(this).attr("value");
        myArr.push(thisItem); 

        }); 
    }

    function setupAC() {
    $("input#searchBoxEv").autocomplete({
    source: myArr,
    minLength: 3,
    select: function(event, ui) {
    var urlString = "http://mysite.com/" +  "eventi/" + (ui.item.value) + ".html";
    $("input#searchBoxEv").val(urlString);
    location.href=urlString;

                           }
    });
}
}); 
4

2 に答える 2

2
$("#auto").autocomplete({
    source: function(request, response) {
        var results = $.ui.autocomplete.filter(myarray, request.term);

        response(results.slice(0, 10));
    }
});

ここでより多くのドキュメントを見つけることができます..

http://jqueryui.com/autocomplete/

于 2012-10-18T10:02:00.817 に答える
0

最後に、jquery.ui css に max height と overflow:hidden という 2 つのパラメータを追加して問題を解決しました。オートコンプリートは 3° の文字で初期化されているため、より良い結果を得るには、より多くの文字を入力する必要があります。5 つの異なるブラウザー (IE、Chrome、Opera、Firefox、Safari) で動作します。

.ui-autocomplete { 位置: 絶対; カーソル: デフォルト; テキスト揃え:左; 最大高さ:245px; オーバーフロー:非表示; }

于 2012-10-19T07:33:26.920 に答える