如何根据用户的选择显示文本字段?

时间:2011-05-26 18:36:29

标签: ruby-on-rails dom-events

我有一个数组

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

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

如果我选择C,那么我想显示“city”和“state”的输入字段。否则,应隐藏这些字段。有没有简单的方法来做到这一点。我不想使用jQuery或Ajax。

1 个答案:

答案 0 :(得分:0)

我不知道如何在不使用javascript的情况下更改显示哪些字段。

您可以做的是始终显示城市和州字段,但只有在选择菜单设置为C时才需要它们。例如,如果选择菜单设置为C,则定义需要字段的验证规则。你的lib /目录,make 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