jQuery Clone-Tabellenzeile
Ich habe eine Tabelle mit einer Schaltfläche Hinzufügen am Ende. Wenn Sie auf diese Schaltfläche möchte ich eine neue Zeile in der Tabelle erstellt werden, die unterhalb der aktuellen ein. Ich will auch, dass die Eingabefelder in dieser Zeile leer zu sein. Ich bin versucht, dies zu tun mit .clone () - aber es Klone alle Zeilen auf der Seite. Bitte helfen Sie. Dank
Skript
$("input.tr_clone_add")
.live('click', function(){
$(this).closest('.tr_clone')
.clone()
.insertAfter(".tr_clone")
});
HTML
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="table-data">
<tr>
<td>Name</td>
<td>Location</td>
<td>From</td>
<td>To</td>
<td>Add</td>
</tr>
<tr class="tr_clone">
<td><input type="text" autofocus placeholder="who" name="who" ></td>
<td><input type="text" autofocus placeholder="location" name="location" ></td>
<td><input type="text" placeholder="Start Date" name="datepicker_start" class="datepicker"></td>
<td><input type="text" placeholder="End Date" name="datepicker_end" class="datepicker"></td>
<td><input type="button" name="add" value="Add" class="tr_clone_add"></td>
</tr>
</table><!-- /table#table-data -->
Kommentar zu dem Problem
Ich denke, Sie wollen auch die
name
- parameter aktualisiert werden, um zu vermeiden, Daten-Konflikte (D. H. die eingegebenen Werte in die neue Zeile überschreiben die Werte des geklonten Zeile)...? Hallo Tomm, ich glaube nicht, dass name-Werten in Konflikt, ich gehen zu müssen, fügen Sie ein Unterscheidungsmerkmal an einem gewissen Punkt wenn auch vielleicht eine Nummer hinzuzufügen, die auf der tr-Klasse?
Normalerweise verwende ich eine "Vorlage" - Klon, der gestaltet ist, um "display: none" via css.
Ein paar Dinge: (1) die
width
, border
, cellpadding
und cellspacing
- Attribute sind veraltet, zu Gunsten von CSS-Stilen. Wechseln zu CSS. (2) mit TH statt TD-Elemente für Ihre Tabellenüberschrift Zellen. (3) Sie kann nicht mehr als eine Autofokus-Feld. @Šime Vidas Dank für die Kommissionierung, bis. Cheers
InformationsquelleAutor der Frage Clinton Green | 2011-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist, dass Ihr
insertAfter
:fügt nach jedem
.tr_clone
:Werden Sie wahrscheinlich wollen einfach nur zu nutzen
nach
auf die Zeile, die Sie sind, zu duplizieren. Und ein wenig.find(':text').val('')
wird klar, dass die geklonte text ein; so etwas wie dieses:Demo: http://jsfiddle.net/ambiguous/LAECx/
Ich bin mir nicht sicher, welcher Eingang am Ende mit dem Fokus, so dass ich verlassen haben, allein.
InformationsquelleAutor der Antwort mu is too short
Hier gehen Sie:
Live-demo: http://jsfiddle.net/RhjxK/4/
Update: Die neue Art zu delegieren Ereignisse in jQuery ist
InformationsquelleAutor der Antwort Šime Vidas
Versuchen Sie diese Variante:
InformationsquelleAutor der Antwort Steve Wellens
Den code unten Klon Letzte Zeile und füge nach der letzten Zeile in der Tabelle:
Beispiel : http://jsfiddle.net/kQpfE/2/
InformationsquelleAutor der Antwort maverickosama92
Versuchen.
HTML
Skript
InformationsquelleAutor der Antwort Taron Hambardzumyan
Versuchen, diesen code,
Ich habe folgende code für das Klonen und entfernen das geklonte element, ich habe auch neue Klasse (newClass), die Hinzugefügt werden können, werden automatisch mit der neu geklonten html
zum Klonen..
für das entfernen der Klon-element.
html ist wie followinng
InformationsquelleAutor der Antwort Umair Mehmood