使用ActionView Helpers导航observe_field

时间:2009-09-16 12:08:01

标签: javascript ruby-on-rails ruby forms select

我有一个带有几个选项的选择菜单

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

最后一个是id“5”而name =“Other”

当且仅当他们选择其他我希望显示隐藏的text_area并使用div id =“other”来允许用户输入...

我怎么能这么做呢?

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

我可以切换它但我想在选择框中选择“其他”时显示它吗?这是observe_field的工作吗?

2 个答案:

答案 0 :(得分:3)

您自己的答案很好,但为了将来参考,observe_field不必进行Ajax调用。您可以使用:function来指定在本地运行的JavaScript代码。

e.g。

<%=observe_field 'reason', :frequency => 1, 
    :function => "if ($('reason').value == '5') { $('otherform').show(); } else { $('otherform').hide(); }" %>

答案 1 :(得分:2)

<%= f.select :reason, Confirmation.reasons.collect {|p| [ p[:name], p[:id] ] }, { :include_blank => true }, { :onchange => "if (this.value == '5') { $('otherform').show(); }" } %>

知道了!