La clonazione di un form in jQuery e aumentando l'indice
Domanda
Questo sembra relativamente semplice, sto solo perplesso sulla sintassi di jQuery.
In sostanza voglio prendere questa forma:
<div class="me_signup">
<input type="text" name="referral[0][name]" id="referral_0_name">
<br>
<input type="text" name="referral[0][email]" id="referral_0_email">
</div>
e duplicarlo con un pulsante e aumentare il numero variabile ..
$(".add_another_button").click(function(){
...
};
Soluzione
questo ?
$(".add_another_button").click(function() {
var $newdiv = $(".me_signup:last").clone(true);
$newdiv.find('input').each(function() {
var $this = $(this);
$this.attr('id', $this.attr('id').replace(/_(\d+)_/, function($0, $1) {
return '_' + (+$1 + 1) + '_';
}));
$this.attr('name', $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) {
return '[' + (+$1 + 1) + ']';
}));
$this.val('');
});
$newdiv.insertAfter('.me_signup:last');
});
Altri suggerimenti
Si può mettere tutto ciò che HTML in una variabile, e l'uso .Append () per aggiungere questo ad un particolare elemento DOM. E, se si clonare questo, assicurarsi di cambiare "id" a "di classe", perché id deve essere unico in ogni pagina. Alcuni di più su .Append () nella documentazione ufficiale
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow