Ich habe diesen Code:Get
var i = 0;
$('#jobs').change(function() {
var id = $(this).select2('data')[i].id;
var txt = $(this).select2('data')[i].text;
$('#jobSection').append('<fieldset><legend>' + txt + '</legend><input type="text" class="form-control" name="size_' + id + '" placeholder="Size"><br/><select class="form-control" name="type_' + id + '"><option>Type</option><option value="1">Type 1</option><option value="2">Type 2</option></select></fieldset>');
i++
});
Mit, dass ich für jeden Tag zusätzliche Eingabefelder am anhängen.
Aber es funktioniert nur, wenn ich Tags auf Bestellung wähle, sonst dauert es vorherige Tag-Daten.
Ich verstehe, dass das Problem in i
ist, weil dies nicht tatsächliche Schleife ist, sondern Ereignis ändern.
Also ich möchte wissen, wie man nur letzte Tag-Daten bei Änderung bekommen?
Voll Beispiel ist here
die Dokumentation Anzeigen, sollte dies nicht in einem 'select' sein? – wmash
Ich weiß nicht, jquery, um den Code zu schreiben. Aber ich kann auf das Problem hinweisen. Ihre Daten $ (this) .select2 ('data') werden mit den Daten der Bestellung gefüllt. Es bedeutet, dass, wenn Sie Tags 3,4,1 wählen - Ihre Daten sind tatsächlich 1,3,4. Und Ihr "i" in diesem Moment ist 2 (erhöht 0 -> 1 -> 2 und wird am Ende 3 sein) und Sie haben den Wert 4 aus den Daten erhalten, während Sie das letzte Mal auf 1 geklickt haben. Also var i erhöht sich, aber Sie erhalten immer das größte Tag. UPD: Ja, dieser Code muss neu gestaltet werden. Wie GrigTheFirst in seiner Antwort erwähnt hat. –