Получить идентификатор / значение / имя флажков, сгенерированных в форме с рельсами - PullRequest
0 голосов
/ 11 ноября 2009

Я использую помощник fields_for в рельсах с некоторыми текстовыми полями. Как я могу получить идентификатор этих текстовых полей для использования в некоторых Javascript? Я хотел бы иметь возможность манипулировать состоянием других флажков, нажав на определенные поля.

, например

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

Затем сделайте что-нибудь с scriptaculous или onclick, чтобы разобраться с тем, что происходит с другими сгенерированными флажками.

1 Ответ

0 голосов
/ 11 ноября 2009

Прогнозирование идентификаторов слишком запутано в динамических формах для надежного JavaScript.

Вместо этого вы можете использовать прототипы помощников и имена классов для достижения аналогичной функциональности.

Сделайте этот 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 %>
...