1

jQueryオートコンプリート機能(http://jqueryui.com/autocomplete)とDjango dynamic-formset(http://code.google.com/p/django-dynamic-formset/)を使用しています。フォームセットフィールドの1つはオートコンプリートを使用する必要があるため、(簡略化)を使用してアタッチします。

$('input[name$=select]').autocomplete({source:'my_url/', minLength: 3});

私はこれをドキュメントレディで呼び出し、正常に動作します(ajaxからデータを取得します)。ただし、django-dynamic-formsetを使用して新しい行を追加し、その'added'イベントを次のように処理するとします。

function(row){
    $(row).find('input[name$=select]').autocomplete({source:'my_url/', minLength: 3});
}

新しく追加された行では機能しません。どうしたの?

更新:代わりにクラスを使用しようとしました-結果なしon()/ live()を使用しようとしました-結果なし新しい行が追加された後にオートコンプリートを破棄しようとしました-結果なし(破棄されますが、作成されません)。

4

1 に答える 1

1

このコードをjquery.formset-1.2でテストしたところ、間違いなく機能します。

function enableAutocomplete(context) {
    $('input[name$=select]', context || null).autocomplete({source:'my_url/', minLength: 3});
}

$(document).ready(function() {
    $('.foo').formset({
        added: function(row) {
            enableAutocomplete(row);
        }
    });

    enableAutocomplete();
});
于 2013-02-05T05:04:06.993 に答える