获取使用rails生成的复选框的id / value / name

时间:2009-11-11 10:31:44

标签: javascript ruby-on-rails scriptaculous

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

e.g。

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

然后用scriptaculous或onclick做一些事情来处理其他生成的复选框会发生什么。

1 个答案:

答案 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 %>