0

私はfields_forいくつかのテキストボックスを備えたレールでヘルパーを使用しています。Javascript で使用するこれらのテキスト ボックスの ID を取得するにはどうすればよいですか? 特定のボックスをクリックして、他のチェックボックスのステータスを操作できるようにしたいと考えています。

例えば

  <% 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 に答える