J'essaie d'ajouter de nouveaux champs dans un formulaire en utilisant jQuery.Rails: Ajout et suppression de champs jQuery dans le formulaire
C'est new.html.erb
<%= form_for @hour do |f| %>
<div id="hourSet">
<%= render partial: "hours_form" %>
</div>
<a href="javascript:;" id="addNewHour">Add Hours</a>
<div class="hide" id="new_hours_form">
<%= render partial: "hours_form", locals: {hour: false} %>
</div>
</div>
js fichier
$(document).ready ->
$("#addNewHour").on "click", ->
$("#hourSet").append $("#new_hours_form").html()
$("#removeNewHour").on "click", ->
$("#hourSet").remove()
_hours_form.html.erb
<div class="hoursForm">
<%= label_tag 'day' %>
<%= text_field_tag 'day[]' %>
<%= label_tag 'open_time' %>
<%= text_field_tag 'open_time[]' %>
<%= label_tag 'close_time' %>
<%= text_field_tag 'close_time[]' %>
<a href="#" id="removeNewHour">X</a>
</div>
Quand je suis en train de remplir les champs, seulement le premier X fonctionne, et il supprime tous les champs. J'aime seulement supprimer 1 à la fois. Quelle est la meilleure méthode pour ajouter des identifiants uniques et obtenir ces identifiants pour une suppression facile?
Merci!
avez-vous un champ id dans @hour objet. Si oui, je pense que vous pouvez l'utiliser pour rendre div unique. ex:
@Dave aurait '@ hour.id' fonctionnant seulement s'il y avait un identifiant (pour les données existantes?). Puisque j'ajoute de nouvelles données, il n'y aurait pas encore @ hour.id qui existe? – hellomello
vous avez raison. que diriez-vous d'utiliser une variable de compteur javascript ajoutée à id avec soulignement entre eux. à chaque clic de #addNewHour incrémenter la variable de compteur et décrémenter le compteur sur le clic de #removeNewHour. en récupérant, nous pouvons séparer en utilisant underscore et obtenir l'identifiant de div à supprimer. – Dave