我在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());
});
但是使用嵌套属性我不知道该怎么做。
提前谢谢!
答案 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());
}
});
)};