Klon-form und die Schrittweite
Ich habe ein Formular unten, dass ich Sie Klonen möchten, Inkrementieren Sie die id(att1) und es Eingänge, Texteingabefelder usw. und anfügen an die Teilnehmer div. Jede Hilfe sehr geschätzt. Seit wrecking meinem Kopf...
Alle, die ich habe ist...
$(function () {
var index = 1;
$(".add").click(function () {
index++;
$("#att1").clone(true).removeAttr("id").attr("id", "att" + index).appendTo("#attendees");
alert(index);
});
});
Html:
<div id="attendees">
<div id="att1">
<fieldset>
<legend><span class="legend">Attendee 1 Booking Details</span></legend>
<p name="test">
<label for="A_Title_1">Title: <span class="req">*</span></label>
<input name="A_Title_1" id="A_Title_1" value="" type="text" class="f_input" />
</p>
<p>
<label for="A_Forename_1">Forename: <span class="req">*</span></label>
<input name="A_Forename_1" id="A_Forename_1" type="text" class="f_input" />
</p>
<p>
<label for="A_Surname_1">Surname: <span class="req">*</span></label>
<input name="A_Surname_1" id="A_Surname_1" type="text" class="f_input" />
</p>
<p>
<label for="A_Info_1">Additional Info: </label>
<textarea name="A_Info_1" id="A_Info_1" cols="20" rows="10"></textarea>
<span class="info">Please include any infomation relating to dietary/access/special requirements you might have.</span>
</p>
</fieldset>
</div>
<a href="#" class="add">Add more</a>
</div>
- Ich sehe Sie nicht nach JavaScript. Brauchen Sie Hilfe mit jeder einzelnen Zeile des Codes erforderlich oder Sie haben Probleme mit bestimmten Schritt?
- Ich bearbeitete den text oben mit dem was ich habe, das ist sehr wenig. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen die fiddle.
Fügen Sie eine Klasse
attendee
zu dendiv id="att1"
Und die JS:
Versuchen, diese
Erfordert ein paar änderungen im HTML, ich würde verschieben Sie die add-link aus der Teilnehmer-div.
Diesem Beispiel könnte Ihnen dabei helfen. Beispiel
ich weiß, es ist der alte thread.. ich möchte nur Teile einfach Weg zu Inkrementieren id. ich bin mit der gleichen Klasse in allen geklonte element
UPDATE :
diese mehr Eleganz Weg :
Ich stellte diese gleiche Antwort anderswo, aber ich denke, es gilt für diese Frage zu.
Erstellte ich eine "original" - element und versteckte es auf der Seite. Ich angehangen "---" der Wert von jedem Attribut, das musste erhöht werden, innerhalb von child-Elemente des Originals.
Immer, wenn der Benutzer auf eine Schaltfläche zu erstellen, die ein Klon des Originals, die ich erstellt einen Klon, dann Global ersetzt "---" mit dem aktuellen index innerhalb dieser Klon ist HTML. So etwas wie dieses:
Habe ich eine data-Attribut speichern aktualisiert die Werte der incrementedFieldNum (nicht gezeigt in den obigen code).
Hoffentlich das hilft. Es ist viel weniger code und es ist eine Allgemeine Lösung, denke ich. Ich hatte viele verschachtelte Elemente, die erforderlich, um die inkrementierten IDs und Namen, also eine Lösung, wie die von @Fierceblood unpraktisch war.