javascript - rails : jQuery adding and removing fields in form

标签 javascript jquery ruby-on-rails ruby-on-rails-3

我正在尝试使用 jQuery 在表单中添加新字段。

这是 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文件

$(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>

当我尝试填充字段时,只有第一个 X 起作用,并且它会删除所有字段。我喜欢一次只删除 1 个。添加唯一 ID 并获取这些 ID 以便于删除的最佳方法是什么?

谢谢!

最佳答案

这是jsfiddle 您可以引用并相应地更改您的代码。我使用了最接近的 jquery 方法来实现删除目的。如果这有用,那么我认为没有必要使用唯一的 id。

$(this).closest('.hoursForm').remove();

关于javascript - rails : jQuery adding and removing fields in form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23173650/

相关文章:

javascript - 如何使用 javascript 正则表达式全局查找并替换文本区域中字符串的开头

php - 使用 javascript 分割面板

ruby-on-rails - 如何使用 Cucumber 和 Rspec 测试 Rails 3 引擎?

ruby-on-rails - 在不重新发明排队系统的情况下实现摘要电子邮件的最优雅方法是什么?

ruby-on-rails - 按数组对 ActiveRecord 记录进行排序

javascript - Javascript 数字加法给出错误答案

javascript - 在 Jsctypes 中将 char * 从 javascript 传递到 c 并将 char * 从 c 返回到 javascript

javascript - dotenv 没有正确赋值

javascript - 使用 js 库补间 dom 对象时操作的最佳属性

jquery - 如何为检查 json 数据的 div 设置不同的类