我在rails中使用fields_for
帮助器和一些文本框。如何在某些Javascript中获取这些文本框的ID?我希望能够通过单击某些框来操纵其他复选框的状态。
e.g。
<% fields_for "[id][]", app do |fields| %>
<%= fields.check_box :featured %>
...
然后用scriptaculous或onclick
做一些事情来处理其他生成的复选框会发生什么。
答案 0 :(得分:0)
对于可靠的javascript,预测id在动态表单上会变得太乱。
相反,您可以使用原型助手和类名来实现类似的功能。
将此javascript设为您的网页:
var myrules = {
'.highlightFeatured': function (e){
clicked_on_box = Event.element(e)
container = clicked_on_box.up('form')
box_to_modify = container.down('.featured')
new Effect.Highlight(box_to_modify)
};
};
Event.observe(window, 'load', function(){
$('fields').delegate('click', myrules);
});
并沿着这些方向定义您的视图。现在,当点击虚假复选框时,功能将突出显示。
<% fields_for "[id][]", app do |fields| %>
<div id="fields">
<%= fields.check_box :featured, :class => "featured" %>
<%= fields.check_box :bogus, :class => "highlightFeatured" %>
...
</div>
<% end %>