在javascript中从nested_attributes返回id

时间:2014-06-19 17:20:39

标签: javascript ruby-on-rails nested-attributes

我在rails中有一个编辑视图,其中有许多来自nested_attributes的输入框。

<div class="form-group">
    <%= f.fields_for :item_prices, :class => "col-sm-2" do |ff|%>
        <%= ff.hidden_field :store_id %>
            <div class="col-sm-8 input_cc_size">
                <label><%= ff.object.store.name %></label>
                <%= ff.text_field :regular_price, :class => "form-control input_cc_size_nested", :value => (number_with_precision(ff.object.regular_price, :precision => 2)) %>
            </div>
   <% end %>
</div>

当我在第一个框中键入一个值时,我想在javascript中动态地获取此值。 我找到了这个参考Jquery: Mirror one text input to another 我试图在javascript中做类似的事情。如何在javascript中返回嵌套属性的id并迭代它们?如果ids哪里标准我可以做类似

$('#item_item_prices_attributes_0_store_id').bind('keypress blur', function() {
    $('#item_item_prices_attributes_1_store_id').val($(this).val());
    $('#item_item_prices_attributes_2_store_id').val($(this).val());
});

但是使用嵌套属性我不知道该怎么做。
提前谢谢!

2 个答案:

答案 0 :(得分:0)

绑定到标记名称,而不是id:

$('.form-group input:eq(0)').bind('keypress blur', function () {
  $('.form-group input:gt(0)').val($(this).val());
});

应将第一个输入的值复制到具有类form-group的元素中的所有其他输入。

答案 1 :(得分:0)

@AlexAtNet感谢您抽出宝贵时间回答!

我所做的是通过所需的id迭代for循环。我在表单中添加了一个隐藏字段来计算价格,以便我为for循环所需的ID。 我的js是:

jQuery(function(){
    $("item_item_prices_attributes_0_regular_price.bind("change", function(){
        stcount = document.getElementById('count_stores').value;
        for (var i=0; i< stcount; i++){
            $("#item_item_prices_attributes_"+i+"_regular_price").val($(this).val());
        }
    });
)};