Jquery 块的表单_中更改事件的重复结果

Jquery 块的表单_中更改事件的重复结果,jquery,ruby-on-rails,Jquery,Ruby On Rails,我不熟悉Rails 我有嵌套的表单 <div id="items"> <%= f.simple_fields_for :items do |i| %> <%= render 'item_fields', :f => i %> <% end %> <div class="links"> <%= link_to_add_association '+ produk', f, :items %>

我不熟悉Rails

我有嵌套的表单

<div id="items">
  <%= f.simple_fields_for :items do |i| %>
      <%= render 'item_fields', :f => i %>
  <% end %>
  <div class="links">
    <%= link_to_add_association '+ produk', f, :items %>
  </div>
</div>
其思想是,无论何时选择产品id,它都将设置单位成本的值。 问题是,它只适用于嵌套表单的第一行,第二行和下一行,值将与第一行重复


任何帮助都将不胜感激。

编辑您的_项目_字段:

<%= f.select :product_id, Product.all.collect {|p| [p.name, p.id, {'data-unit_cost'=>p.sell_price }]}, { class: 'product-select'} %>
<%= f.input :qty %>
<%= f.input :unit_cost%>
<%= f.input :discount %>
<%= f.number_field :subtotal %>
<%= f.select :product_id, Product.all.collect {|p| [p.name, p.id, {'data-unit_cost'=>p.sell_price }]}, {}, { class: 'product-select'} %>
并编辑您的脚本:

$(document).ready ->
  unit_cost = $('#items_items_unit_cost')
  unit_cost.val($('.product-select :selected').data('unit_cost'))
  $(".product-select").change ->
    unit_cost.val($('.product-select :selected').data('unit_cost'))

我使用的是rails4,似乎没有用于或f输入的简单字段。所以我用字段_代替f.text _。这对我的测试代码有效,但我不确定它是否适用于您。试试看:

嗨,谢谢你的评论。我使用的是SimpleForm gem,因此它成为简单的字段。如果我添加select,则2..4的参数数5出现错误。我已经将id添加到单位成本中,但单位成本的值仍然与第一个单位成本重复。哦,对不起。不应该,但是{}。我已经更正了它,请再试一次:在我绑定了简单表单gem之后,我发现它将默认id应用于:unit_cost。所以脚本也变了,试试看,还是一样的。仅供参考,我也将Cocoon gem用于嵌套形式。同时,我将不加任何修饰地复制这种情况。希望它能起作用请出示您的物品的完整表格,因为:unit_cost的id可能因不同的表格而不同。
<%= f.input :unit_cost%> #Add an id for selecting element
$(document).ready ->
  unit_cost = $('#items_items_unit_cost')
  unit_cost.val($('.product-select :selected').data('unit_cost'))
  $(".product-select").change ->
    unit_cost.val($('.product-select :selected').data('unit_cost'))