2011-05-26 111 views
-1

我有一个数组如何根据用户的选择显示文本字段?

ABC = ["A","B","C"] 

<%= f.select :abc, model::ABC, :include_blank => true %> 

如果我选择C,然后我要显示的输入字段为“城市”和“状态”。否则,这些字段应该隐藏。有没有简单的方法来做到这一点。我不想使用jQuery或Ajax。

+0

你的意思是要改变哪些元素是基于用户的选择显示? – declan 2011-05-26 18:41:05

+0

<%= f.select:ABC,型号:: ABC,:include_blank =>真%>这是只有当我选择CI属性要城市和国家其他应显示<%= f.label默认情况下:ABC%>
<%= f.select:ABC,型号:: ABC,:include_blank =>真正%>是好的 – user659068 2011-05-26 18:46:34

+0

你要的城市和州域是相同的页面选择菜单上的?或在下一页? – declan 2011-05-26 22:57:13

回答

0

我不知道的方式来改变正在显示哪些领域不使用JavaScript。

你可以做的是始终显示城市和国家领域,但只要求他们,如果选择菜单设置为C.例如,定义需要领域,如果选择菜单设置为C的验证规则在你的lib /目录,使require_if_c_validator.rb

class RequireIfCValidator < ActiveModel::EachValidator 
    def validate_each object, attribute, value 
    if object.your_attribute_name == 'C' && value == nil 
     object.errors[attribute] < 'is required' 
    end 
    end 
end 

然后在你的模型,把它在城市和国家:

validate :city, :require_if_c => true 
validate :state, :require_if_c => true 
相关问题