Sto cercando un modo efficace per clonare/rinominare o ricreare i campi degli indirizzi per offrire la possibilità di inviare più indirizzi sulla stessa pagina. Così, con l'esempio forma in questo modo:Clonazione e ridenominazione degli elementi del modulo con jQuery
<div id="addresses">
<div class="address">
<input type="text" name="address[0].street">
<input type="text" name="address[0].city">
<input type="text" name="address[0].zip">
<input type="text" name="address[0].state">
</div>
</div>
<a href="" id="add_address">Add address form</a>
Da quello che posso capire ci sono due opzioni per farlo:
ricreare il campo del modulo da campo e incrementare l'indice che è una specie di verbose:
var index = $(".address").length; $('<`input`>').attr({ name: 'address[' + index + '].street', type: 'text' }).appendTo(...); $('<`input`>').attr({ name: 'address[' + index + '].city', type: 'text' }).appendTo(...); $('<`input`>').attr({ name: 'address[' + index + '].zip', type: 'text' }).appendTo(...); $('<`input`>').attr({ name: 'address[' + index + '].state', type: 'text' }).appendTo(...);
clone livello esistente e sostituire il nome nel clone:
$("div.address").clone().appendTo($("#addresses"));
Quale mi consigliate utilizzare in termini di essere più efficienti e se # 2 può si prega di suggerire come andrei sulla ricerca e la sostituzione di tutte le occorrenze di [0] con [1] ([n]). Grazie.
Questo è perfetto! grazie per la spiegazione del funzionamento interno del clone e un promemoria sui problemi con il cambio del nome di input in IE. – Micor