我的Rails表单中有一个选择输入 -
<%= f.select :store_type_id, @storeType.map{ |type| [type.store_type.capitalize, type.id] }, {include_blank: 'Select store type'} %>
如何才能使第一个选项(“选择商店类型”)被禁用并被选中?
我想要的html等价物是
<option disabled selected>Select store type</option>
谢谢!
答案 0 :(得分:1)
没有办法(本机地)确保跨浏览器功能,但这里 答案:
# on store types
def self.options
options = self.all.collect { |type| [type.capitalize, type.id] }
options.unshift(["Select Store Type", "0"])
options
end
# in your form
<%= f.select :store_type_id, options_for_select(StoreType.options, :disabled => "0") %>
但是,您依赖于浏览器来选择禁用的输入,这将自相矛盾。 Chrome最新用于下一个非禁用输入。
相反,您可能希望进行一些表单验证,以确保select的值不为空。
为了让未来的Ruby开发人员满意(并保持自己与常规和最佳实践保持一致),请记住Ruby认可snake_casing你的变量:)
答案 1 :(得分:1)
您可以使用禁用并传递选项来禁用
<%= f.select :field_name, options, {disabled: ['disabled_option_1', 'disabled_option_2']}, {id: "Select"} %>