2011-10-10 49 views
0

阶段: 我使用的是嵌套模型,因此我们有两个模型:personcar。 在这里你有new.html.erb页:如何知道Rails 3上html字段的id?

<%= form_for(@person do |f| %> 
    ... 
    <%= f.fields_for :cars do |car| %> 
    <div class="field"> 
     <%= car.label :color %><br /> 
     <%= car.text_field :color, :maxlength => 7 %> 
    </div> 
    <% end %> 
    ... 
<% end %> 

该代码会产生每节车厢:

<form ...> 
    ... 
    <div class="field"> 
    <label for="person_cars_attributes_0_color">Car color</label><br /> 
    <input id="person_cars_attributes_0_color" 
      name="person[cars_attributes][0][color]" 
      size="7" type="text" /> 
    </div> 
    ... 
</form> 

现在假设我们需要把一些JavaScript代码,每个输入字段,产生像这样:

<script type="text/javascript"> 
     $(document).ready(function() { $('#person_cars_attributes_0_color').mycolorpicker(); }); 
    </script> 
    <input id="person_cars_attributes_0_color" 
      name="person[cars_attributes][0][color]" 
      size="7" type="text" /> 

注意,我们需要在JavaScript代码输入字段id(在本例person_cars_attributes_0_color)。

问题:我们如何获得每个html字段生成的id值?

非常感谢您的帮助。 如果您需要更多详细信息,请随时问我任何问题。

回答

1

如何将有问题的字段分配给您事先确定的ID或类?

new.html.erb

<%= form_for(@person do |f| %> 
    ... 
    <%= f.fields_for :cars do |car| %> 
    <div class="field"> 
     <%= car.label :color %><br /> 
     <%= car.text_field :color, :maxlength => 7, :class => 'colorpicker' %> 
    </div> 
    <% end %> 
    ... 
<% end %> 

的JavaScript:

$(document).ready(function() { 
    $('.colorpicker').mycolorpicker(); 
}); 
+0

It太容易了,非常感谢,我在JavaScript和jQuery世界里也很喜欢这里。 – Israel

1

我强烈建议您查看Ryan Bates的nested_form宝石。我认为它会照顾你想要做的一切。

+0

Janders223,非常感谢您的回复。我会检查它,我会回复任何进度。 – Israel

+0

嗨,我看过这些视频,它是类似的,但我仍然不知道如何得到解决我的问题。 :( 如果您知道,请指导我一点 – Israel

+0

嵌套在nested_form gem后面的javascript会为您添加的每个div添加适当的id,然后您插入的每个新div都会有一个id为person_cars_attributes_new_color的设备 – janders223