【问题标题】:Placeholder in form_for select field?form_for 选择字段中的占位符?
【发布时间】:2020-12-17 00:10:29
【问题描述】:

answershow do I use a default placeholder ... in a select_tag? 显示了如何为选择字段设置 默认 值。

例如:

<%= f.select :country, countries, {include_blank: true, prompt: "United States"}, {required: true, class: "form-control"} %>

这里的问题是我只想要占位符的轮廓,而不是可能意外提交的实际值。

如果我们与text_field 中的placeholder 值进行比较,差异会更加明显。我们看到占位符:

但我们不能不小心提交占位符。

如何使用.select 字段获得类似的行为?

也就是说,这样在选择字段中有一些占位符,但不会被误提交?

【问题讨论】:

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


    【解决方案1】:

    只需将include_blank: true布尔值更改为所需的占位符字符串

    <%= f.select :country,
                 countries,
                 { include_blank: "- nothing selected -" },
                 { required: true, class: "form-control" } 
    %>
    

    这将创建一个没有值的预选选择选项,Rails 控制器会将其解释为nil

    【讨论】:

    • 谢谢!我对此脑洞大开,找不到它……这应该是 FWIW 公认的答案
    【解决方案2】:

    根据https://developer.mozilla.org/en-US/docs/Web/HTML/Element/selectselect 没有placeholder 选项。如果您希望显示不应提交的预定义值,您可以向此特定项目添加disabled 选项并将其与selected 结合使用。

    <%= f.select :country, [['USA', 1], ['Canada', 2]], { disabled: '1', selected: '1' } %> 
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 2017-03-15
      • 2018-10-13
      • 2012-01-12
      • 2017-04-18
      相关资源
      最近更新 更多