2012-04-05 11 views
0

動的に追加された入力フィールドにjQuery UIオートコンプリートウィジェットをバインドしようとしています。私はここにいくつかの記事を読みましたが、誰も助けてくれないようです。動的に追加されたフォームフィールドにオートコンプリートをバインドする

私が使用しているコードはDynamically adding a form to a Django formset with Ajaxです。私はそれを少し修正してオートコンプリートをバインドしました。

ただし、バインドは機能していないようです。新しく追加されたフィールドに入力するたびに、オートコンプリートボックスは表示されません。私が使用していたコードは次のとおりです。

function cloneMore(selector, type,field) { 
    var newElement = $(selector).clone(true); 
    var total = $('#id_' + type + '-TOTAL_FORMS').val(); 
    newElement.find(':input').each(function() { 
     var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-'); 
     var id = 'id_' + name; 

     if ($(this).attr('type') != 'hidden') { 
      $(this).val(''); 
     } 
     $(this).attr({'name': name, 'id': id}).removeAttr('checked'); 
    }); 
    newElement.find('label').each(function() { 
     var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-'); 
     $(this).attr('for', newFor); 
    }); 
    total++; 
    $('#id_' + type + '-TOTAL_FORMS').val(total); 
    $(selector).after(newElement); 

    /* create the selector string and bind autocomplete */ 
    var select_string = "#id_"+type+"-"+(total-1)+"-"+field; 
    $(select_string).autocomplete({ 
     source: asset_universe_codes, 
    }); 

} 

私はオートコンプリートソースが関数内でアクセス可能であることを確認しているので、私は途方に暮れてよ。

誰でも手助けできますか?

おかげで、

ジェイソン

+1

.on()とdelegate()を試しましたか? – Chibuzo

+0

私はそうではありません。私はjQueryには比較的新しいので、私はそれらのメソッドを知らなかった。デリゲートは、有望な感謝のようです。 – xyzjace

答えて

1

は、そうであるならば、(前にオートコンプリートを呼び出す)それを追加すると、あなたの問題を解決する必要があり、newElementはDOMに追加されていないように思われます。

+0

ああ、そうです。私は印象に残っていました。私はそれを追いかける方法を見て、感謝します。 – xyzjace

+0

これの例を得ることは可能でしょうか?私は答えを見つけるのに苦労した。 – xyzjace

関連する問題