1

jQuery UI オートコンプリート ドロップダウンがあります。オプションの 1 つを選択したいのですが、その選択後、選択したオプションは無効/非表示になります。例: {"good","better","best"} で "better" を選択すると、オートコンプリート候補リストは {"good","best"} になります。

前もって感謝します。

ここで詳細な例(@Whitakerに感謝)

<input id="myElement" />​
var result; // should be array
$("#myElement").autocomplete({
    source: function( request, response ) {
        $.ajax({
            type: "GET",
            dataType: "json",
            url: "autocomplete.php",
            data: {
                  startsWith: request.term
            },
            async:false,
            success: function( data ) {
                result = data; // to do array assign process - not shown here
                response($.ui.autocomplete.filter(result, request.term)); 
            }   
        }); 
    }, 
    select: function(event, ui) {  
        var index = $.inArray(ui.item.value, result); 
        result.splice(index, 1); 
    }
});

jQuery ui splice() メソッドは静的リストに対して機能しますが、AJAX が入力要素をクリックするたびにメソッド更新結果を取得するコードをデバッグすると、興味深い点に出会います。クライアント側で機能する方法はありますか? (.php を変更せずに)

4

1 に答える 1

2

より多くのコンテキストがなければ、良い例を提供するのは少し難しいですが、必要な例がすべてである場合、これはうまくいくはずです:

var src = ['good', 'better', 'best'];
$("#auto").autocomplete({
    source: function(request, response) {
        response($.ui.autocomplete.filter(src, request.term));
    },
    select: function(event, ui) {
        var index = $.inArray(ui.item.value, src);
        src.splice(index, 1);
    }
});

例: http://jsfiddle.net/LSMvS/

于 2012-07-05T01:50:30.083 に答える