0

一致するものが見つからない場合、jqueryUI オートコンプリートのパネル/リストに、少なくともデフォルトの項目 (「新しい項目の追加」など) を表示するように強制しようとしています。アイテムは、いくつかのイベント ハンドラーともバインドできる必要があります。

これまでのところ、実際の AC パネルが隠れている場合に疑似 AC パネルを追加することで、この問題を克服しようとしました。

また、「ソース」を動的に更新して (jqueryui.autocomplete のオプションで)、アイテムをデータセットに挿入して、テキスト ボックスに入力された型が一致として検出され、表示されるようにすることができるかどうかも疑問に思っています。(すみません、この部分を説明するのは本当に難しいです)。

それを達成するためのより良い方法はありますか?

4

2 に答える 2

0

リモートデータソースを使用して回避策を講じました。( http://jqueryui.com/demos/autocomplete/#remote )

結果が見つからない場合は、単純に ajax (サーバーからのデフォルトのアイテム) を介してアイテムを渡します。

解決しました!

于 2010-09-15T11:34:50.227 に答える
0

_renderItem 関数をオーバーライドして、ディスプレイを所有し、「新しいアイテムを追加」テキストを追加することができます。

このようなもの:(未テストの警告)

$('#yourinputelementid').data( "autocomplete" )._renderMenu: function( ul, items ) {
        var self = this;
        $.each( items, function( index, item ) {
            self._renderItem( ul, item );
        });
        var newitem = $( "<li>Add New Item</li>");
        newitem.click(function(event) {
            alert("newitem test");
        });
        self.append(newitem);
    }
.data( "autocomplete" )._renderItem = function( ul, item ) {
    return $( "<li></li>" )
        .data( "item.autocomplete", item )
        .append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
        .appendTo( ul );
};

ここを参照

于 2010-08-02T10:48:44.063 に答える