0

fields_for在带有一些文本框的rails中使用了一个助手。如何获取这些文本框的 ID 以在某些 Javascript 中使用?我希望能够通过单击某些框来操纵其他复选框的状态。

例如

  <% fields_for "[id][]", app  do |fields| %>
       <%= fields.check_box :featured %>
...

然后使用 scriptaculous 或 anonclick来处理其他生成的复选框发生的情况。

4

1 回答 1

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 %>
于 2009-11-11T14:43:50.733 回答