Bonjour,
Dans un formulaire, je permets la création d'un nouveau prix lié à une durée spécifique de manière dynamique en cliquant sur un bouton "Ajouter" :
Ce qui donne visuellement ceci, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 {# For each missing duration for the season, adding a button to add the price for these durations #} {% set seasonName = season.season %} {% for configuredDuration in configuredDurations %} {% if missingDurations[seasonName] is defined and configuredDuration in missingDurations[seasonName] %} {# Don't changing the id because it's used in Jquery #} <button type="button" id="btn-add_{{ season.id }}_{{ configuredDuration }}" class="btn-add"> Ajouter {{configuredDuration}} </button> {% else %} {# Don't changing the id because it's used in Jquery #} <button type="button" id="btn-add_{{ season.id }}_{{ configuredDuration }}" class="btn-add" style="display: none"> Ajouter {{configuredDuration}} </button> {% endif %} {% endfor %}
Au moment du clic sur le bouton "Ajouter", les inputs nécessaires sont bien créés. Egalement, j'affecte un id au bouton "Supprimer cette durée" créé dynamiquement au cas où l'utilisateur s'était trompé :
Ce qui, par exemple, donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $('.btn-add') . on ( 'click' , function ( e ) { ... $( this ).toggle(); //Id's affectation to the remove button var idButtonRemove = idButton.replace('add', 'remove'); var btnRemove = $ ( "#" + idParent + " li:last button" ); btnRemove.attr('id', idButtonRemove); });
Avec cet HTML généré pour le bouton "Supprimer cette durée" :
Le bouton "Ajouter" correspondant à la durée qui vient d'être créée est bien caché. Cependant, si l'utilisateur clique sur "Supprimer cette durée", je voudrais alors que le bouton "Ajouter" correspondant à la durée (ré)apparaisse. Pour ce faire, j'ai donc fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <button type="button" class="btn-remove" id="btn-remove_1_Long week-end">Supprimer cette durée</button>
L'id du bouton ("idButtonAdd ") est bien construit mais le bouton ne se ré-affiche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $('body').on('click',".btn-remove",function(){ $( this ).parent().remove(); //Showing the add button for the deleted duration var idButtonAdd = $( this ).attr('id').replace('remove', 'add'); //$( '#' + idButtonAdd + '' ).show(); $( '#' + idButtonAdd + '' ).toggle(); });
Quelqu'un aurait une idée sur la provenance du problème?
Merci d'avance pur votre aide.
Partager