2016-06-01 17 views
1

ich die automcomplete JS sowie die Daten für die die automatische Vervollständigung aufgenommen habenautomatische Vervollständigung nicht auf geklonten divs Arbeits

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript" src="js/jquery.autocomplete.min.js"></script> 

$("#button").click(function(){ 
    $("#taskform").clone().appendTo("#taskform"); 
}); 

$(function(){ 
    var staffnames = [ 
    { value: 'Stephen', data: 's1' }, 
    { value: 'Klay', data: 's2' }, 
    { value: 'Draymond', data: 's3' }, 
    { value: 'Andre', data: 's4' }, 
    { value: 'Harrison', data: 's5' }, 
    { value: 'LeBron', data: 's6' }, 
    ]; 

    $('#staffsearch').autocomplete({ 
    lookup: staffnames, 
    }); 
} 

Hier ist mein HTML

<form> 
    <div id="taskform"> 
    <input type="text" class="form-control input-sm font11" placeholder="Staff" name="staff" id="staffsearch" value=""> 
    </div> 
    <input type="button" class="btn btn-info input-sm font11 addanother" onlick="duplicate()" id="button" value="Add Another Staff"> 
</form> 

Die zur automatischen Vervollständigung zunächst funktioniert. Aber wenn ich es kloniere, funktioniert die automatische Vervollständigung des geklonten div/input nicht, obwohl die automatische Vervollständigung des Originals immer noch funktioniert.

Wahrscheinlich haben mit der gleichen ID für den ursprünglichen und geklonten Eingang zu tun? Ich bin mir nicht sicher, wie ich damit umgehen soll.

Jede Hilfe wird sehr geschätzt.

B

+0

Zunächst müssen Sie den 'id' zu einer Klasse ändern, wie Sie den' id duplizieren 'mehrere Male, was ungültig ist. Zweitens verschachteln Sie absichtlich die geklonten "# taskform" -Elemente? Es scheint ein bisschen seltsam. Ich denke, dass Sie sie möglicherweise vor der Eingabe stattdessen einfügen möchten. –

+0

@RoryMcCrossan Ich habe jedoch ein paar Eingabefelder innerhalb der ID-Taskform. Wenn ich die ID in eine Klasse ändere, wie beziehe ich mich dann auf das Original und die geklonten Eingänge? danke –

+0

@Pete, wenn ich auf die geklonten tippe, erscheint die Autovervollständigung auf dem ursprünglichen Eingabefeld –

Antwort

1

Vielleicht mißverstanden ich aber wollen Sie so etwas wie die:

https://jsfiddle.net/ye1uzwmg/1/

var staffnames = [{ 
    value: 'Stephen', 
    data: 's1' 
    }, { 
    value: 'Klay', 
    data: 's2' 
    }, { 
    value: 'Draymond', 
    data: 's3' 
    }, { 
    value: 'Andre', 
    data: 's4' 
    }, { 
    value: 'Harrison', 
    data: 's5' 
    }, { 
    value: 'LeBron', 
    data: 's6' 
    }, ]; 

$("#button").click(function() { 
    $("#taskform").find("input[type='text']").last().clone().val('').appendTo("#taskform").autocomplete({ 
    source: staffnames, 
    }); 
}); 

$(function() { 
    $('.staffauto').autocomplete({ 
    source: staffnames, 
    }); 
}); 
+0

Das sieht aus, als was ich auf der jsfiddle benötigt. Ich würde es ausprobieren. Kann der Klon beim Initial Load leer sein? –

+0

'.clone(). Val ('')' Ich werde meine Antwort bearbeiten –

+0

ah, ein Problem, das ich sehe, ist, wenn ich mehrere Eingabefelder geklont haben (was ist, was ich vorhabe) –

Verwandte Themen