Рельсы наблюдения поля с помощью ActionView Helpers - PullRequest
4 голосов
/ 16 сентября 2009

У меня есть меню выбора с несколькими опциями

  <p>
    <%= f.label :reason %><br />
    <%= f.select :reason, Confirmation.reasons.collect {|p| [ p[:name], p[:id] ] }, { :include_blank => true } %>
  </p>

Последним является id "5" и name = "Other"

Если и только если они выберут другое, я хочу, чтобы скрытая текстовая область с div id = "other" была показана, чтобы позволить пользователю печатать ...

Как я могу сделать это просто?

  <%= link_to_function "Show me other" do |page| 
    page[:other].toggle
  end %>

Я могу переключить его, но я хочу показать его при выборе «Другое» в поле выбора? Это работа для поле наблюдения?

Ответы [ 2 ]

3 голосов
/ 16 сентября 2009

Ваш собственный ответ в порядке, но для дальнейшего использования, наблюдаемое поле не должно совершать вызов Ajax. Вы можете использовать :function, чтобы указать код JavaScript для локального запуска.

например.

<%=observe_field 'reason', :frequency => 1, 
    :function => "if ($('reason').value == '5') { $('otherform').show(); } else { $('otherform').hide(); }" %>
2 голосов
/ 16 сентября 2009
<%= f.select :reason, Confirmation.reasons.collect {|p| [ p[:name], p[:id] ] }, { :include_blank => true }, { :onchange => "if (this.value == '5') { $('otherform').show(); }" } %>

Понял!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...