2012-04-05 13 views
0

Ich versuche, das jQuery UI-Autocomplete-Widget an ein dynamisch hinzugefügtes Eingabefeld zu binden. Ich habe einige der Beiträge hier gelesen, aber keine scheint mir zu helfen.Binden von Autocomplete an ein dynamisch hinzugefügtes Formularfeld

Der Code, den ich benutze kommt von Dynamically adding a form to a Django formset with Ajax und ich habe es leicht geändert, um die Autocomplete zu binden.

Die Bindung scheint jedoch nicht zu funktionieren. Wenn ich das neu hinzugefügte Feld eintippe, wird die Autocomplete-Box nicht angezeigt. Der Code Ich verwende folgt:

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, 
    }); 

} 

Ich habe überprüft, dass die zur automatischen Vervollständigung Quelle innerhalb der Funktion zugänglich ist, so dass ich bin ratlos.

Kann jemand helfen?

Danke,

Jason

+1

Haben Sie versucht, .on() und Delegate()? – Chibuzo

+0

Ich habe nicht, nein. Ich bin relativ neu in jQuery, also war ich mir dieser Methoden nicht bewusst. Delegat sieht aus wie es vielversprechend sein könnte, danke. – xyzjace

Antwort

1

Es scheint, dass newElement auf das DOM beigefügten wurde nicht, ob dies der Fall ist, dann ist es (vor dem Aufruf der automatischen Vervollständigung) Anhängen sollte Ihr Problem zu beheben.

+0

Ah, ich verstehe. Ich hatte den Eindruck, dass "nach" das für mich gemacht hat. Ich werde nachsehen, wie man anhängen und geben Sie das, danke. – xyzjace

+0

Wäre es möglich, ein Beispiel dafür zu bekommen, bitte? Ich kämpfte darum, eine Antwort zu finden. – xyzjace

Verwandte Themen