【问题标题】:Ruby on Rails - First option of select in Form_for selected and disabledRuby on Rails - Form_for 中选择和禁用的第一个选项
【发布时间】:2018-08-31 20:32:09
【问题描述】:

如何将选择 options_from_collection_for_select 的第一个选项设置为选中和禁用?

我有那个代码:

<%= f.select :state, options_from_collection_for_select(Estate.order(:name), :uf, :name), {}, :id => 'populate_cities' %>

我需要输出是:

<select id="populate_cities" name="guide_dog_form[state]"><option value="AC">Acre</option>
<option value="Select one option" disabled selected>Select one option</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
</select>

我搜索并找到了一些答案,但没有任何帮助。

有人可以帮助我吗?谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby form-for


    【解决方案1】:
    • 如果您希望占位符仅在表单呈现时属性为 nil 时显示,请使用 :prompt =&gt; "Placeholder"。默认情况下会被选中,但如果用户提交,则不会保存任何内容。如果该属性已被填充 [可能是因为 a) 有一个默认值或 b) 它是一个编辑表单],则该占位符项目将从列表中完全省略。
    • 如果您想始终在呈现的列表中包含占位符,请使用 :include_blank =&gt; "Placeholder"

    根据: https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

    【讨论】:

    • 谢谢。所以我不能让“占位符”作为禁用?
    • 不,你不能。但是你可以做的是解决它,options_from_collection_for_select(Estate.order(:name), :uf, :name) 将返回一个数组尝试到prepend 这个数组的占位符并使用{ disable: 'place holder' } 禁用它。这很hackish,但它会起作用。
    • 谢谢。我也试试这个。
    【解决方案2】:

    无法选择禁用的元素(或禁用选定的元素 - 如果您以这种方式查看)。

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 2016-05-06
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2017-01-24
      • 1970-01-01
      相关资源
      最近更新 更多