我有一个带有几个选项的选择菜单
<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的工作吗?
答案 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(); }" } %>
知道了!