Je suis désolé de poster à un vieux et répondu à la question. J'ai eu un problème similaire et cette réponse m'a aidé mais ne m'a pas tout à fait là. Après essais et erreurs ... Voici ma solution pratique pour ajouter des zones à la page Web et les supprimer. Je l'utilise avec des champs de formulaire dynamiques mais vos besoins peuvent varier.
Voici une partie du formulaire dans la partie statique de la page.
<fieldset>
<legend>Email-tauluun</legend>
<a class="button_ajax email-add">Add new area</a>
<p>
<span class="email_original_area">
<label>Email:
<input type="text" name="emails[]" id="email0" />
</label>
</span>
<!--Below we add some more areas-->
<span id="email_add_area"></span>
</p>
</fieldset>
Ensuite, nous avons besoin de fonctions JavaScript. Ceux-ci utilisent jQuery.
<script type="text/javascript">
//we need a counter for dynamic fields
var cnt=0;
$(document).ready(function(){
$('.email-add').click(function(){
cnt += 1; //let's count...
$('#email_add_area').append(
'<span class="dynExtra"><br /><label>Email: ' +
'<input type="text" name="emails[]" id="email' + cnt + '" /></label>' +
'</span>'
);
//this function creates a button for newly created area
//must be done after the creation of the area
addRemover();
});
});
function addRemover() {
//appends remove button to the last created area
$('<a class="button_ajax dynExtra-clear" name="dynExtra-clear">Remove area ' + cnt + '</a>').appendTo('#email_add_area');
//remove the clicked button and it's previous sibling
$('.dynExtra-clear').click(function(){
$(this).prev().remove();
$(this).remove();
});
}
</script>
J'espère que cela aide quelqu'un et que je n'ai rien oublié.
Est-ce que des problèmes de performances peuvent survenir si vous commencez à les utiliser beaucoup? – chobo2