RoR - 选择禁用 include_blank 的标签

2023-11-27

我想要这样的结果:

<select dir="rtl">
  <option selected disabled>Choose a car</option>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

使用以下代码我只能得到:

<%= f.select(:car, xxxxxx, {:include_blank => 'Choose a car', :disabled => 'Choose a car'}) %>

=>

<select id="xxx" name="xxx">
  <option value="">Choose a car</option>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

第一个选项未禁用...


Ito A 的答案在 Rails 4.2 中不起作用(不确定早期版本)。 来自文档...

:disabled - 可以是单个值或将在最终输出中禁用选项的值数组。

因此,:disabled应为选项指定一个与集合中选项之一的值相匹配的值。所以,:disabled => 'volvo'将禁用该选项value='volvo'。但是,它不会匹配 include_blank 选项,因为该选项不是传递到 select 方法的集合的一部分。

Rails 选择助手不直接支持所需的行为。但是,您可以通过向集合中添加空白选项来解决此问题,如下所示。

创建集合,然后向其中添加空白选项。

car_names = %w(volvo saab mercedes audi)
car_names_with_blank = car_names.map{|c| [c, c]}.prepend(['Choose a car', nil])

视图中:

<%= f.select(:name, car_names_with_blank, {disabled: '', selected: ''}) %>

这是一个link到带有工作示例的 Github 存储库。该示例还表明,Ito A 的答案和类似 SO 问题的其他答案将不起作用。

更新:我已经用解决方案和附加信息更新了我的答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RoR - 选择禁用 include_blank 的标签 的相关文章

随机推荐

  • 使用 Visual Studio 2013 RC 在 Windows 8.1 RTM 上安装 Windows Phone 7.1 SDK

    有谁知道如何在 Windows 8 1 RTM 上使用 Visual Studio 2013 因此无需安装 Visual Studio 2010 进行 Windows Phone 7 开发 我在安装 Visual Studio 2013 时
  • 为什么负 z 索引会消除非静态定位元素的悬停功能?

    我刚刚注意到这个设置z index 1非静态定位的元素会删除它们的悬停功能 令人惊讶的是 绝对和固定定位元素的悬停能力随条件而变化 仅当绝对 固定定位的元素后 面写有一些文本时 才会部分失去悬停功能 将鼠标悬停在顶部边框附近不起作用 如果它
  • SQL try-catch 语句不处理错误 (SQL Server 2008)

    我正在尝试使用 try catch 捕获 SQL 查询 而不是存储过程 中的错误 由于某种原因 这没有处理我的错误 但我仍然得到 消息 213 第 16 级 状态 1 第 29 行 列名称或提供的值的数量与表定义不匹配 有什么帮助吗 beg
  • 捕获最小化远程桌面的屏幕截图

    我有以下 C 代码 用于捕获远程桌面 RDP 会话内的屏幕截图 当会话处于活动状态时 它工作正常 但如果我最小化会话 则会因无效句柄异常而失败 有什么方法可以实现此功能 或者当会话最小化时屏幕基本上 消失 了 string filename
  • strtotime('上个月的第一天') 的版本差异?

    在包含以下内容的脚本中 date Y m d strtotime first day of last month 在版本 5 3 10 localhost 中 我得到 例如 2012 03 01 在版本 5 2 17 远程主机 中 我得到
  • 如何自动停止VBA宏?

    I know you can manually stop a running VBA macro with Ctrl Break but is there any way to have the code stop automaticall
  • 安装 HAXM 时不支持 VT

    我正在尝试安装使用 Intel x86 模拟器加速器的快速 Android 模拟器 我已经通过 SDK 管理器下载了加速器 但是当我尝试安装它时 我在安装开始时收到以下错误消息 我知道我的 CPU i7 3520M 支持 VT X 虚拟化
  • macOS 上 SwiftUI 中列表内的 TextField:编辑效果不佳

    这个问题是关于 SwiftUI 的macOS应用程序 不是 iOS 或 Catalyst 使用 Xcode 12 4 SwiftUI 2 问题是 编辑列表内的文本字段效果不佳 事实上 它的效果非常差 以至于一开始我以为我根本无法编辑它 这是
  • sqlite3“操作错误:接近”(“:语法错误”python

    简而言之 我正在尝试创建一个 sql 数据库表并向其中输入数据 我让它以更简单的方式工作 但是当我将它放入我的脚本中时 它会导致此错误 我希望这是我错过的一些简单的事情 任何帮助 建议将不胜感激 conn sqlite3 connect D
  • Angularjs - 装饰控制器

    我正在尝试为我的控制器设置一个装饰器 我的目的是在我的应用程序中的所有控制器中引入一些常见的行为 我已将其配置为在 Angular 1 2 x 中工作 但从 1 3 x 开始有一些重大更改破坏了代码 现在得到的错误是 控制器不是一个函数 下
  • 类型参数“T”不受 impl 特征、自身类型或谓词的约束

    当特征具有相关类型时 我很难理解特征的使用 这是一个非常简单的例子 pub trait Message pub trait SendsMessages type Message Message fn send msg Self Messag
  • 如何在 Moose 中使用单个构建器构建多个属性?

    使用 Moose 是否可以创建一个同时构建多个属性的构建器 我有一个项目 其中对象有多个字段 集 如果请求该集中的任何成员 我想继续填充它们 我的假设是 如果我需要姓名 我还需要生日 并且由于它们位于同一个表中 因此在一个查询中获取两者会更
  • 基类指针可以指向派生类对象。为什么反之则不然呢?

    基类指针可以指向派生类对象 为什么不进行强制转换则反之亦然 从逻辑上讲 基类不会有足够的派生类信息 但派生类也应该有基类的信息 我在这里缺少一些基础知识 如果我告诉你我有一只狗 你就可以放心地假设我有一只宠物 如果我告诉你我有一只宠物 你不
  • Sql批量插入--文件不存在

    我有以下查询要插入表中 BULK INSERT tblMain FROM c Type txt WITH FIELDTERMINATOR ROWTERMINATOR n GO 它收到消息 消息 4860 16 级 状态 1 第 1 行无法批
  • 在运行时动态选择要使用的 .dll 版本

    我正在开发一个 SharePoint 实用程序 该应用程序适用于 SharePoint 2007 和 2010 当我引用 12 0 0 0 版本的 SharePoint dll 时 该应用程序适用于 SharePoint 2007 但不适用
  • TFS 2012 + Visual studio 2012:某些设置选项返回“用户名或密码不正确”

    我已将 TFS 2010 升级到 TFS 2012 没有出现任何问题 我可以连接到源代码管理 签入以及工作所需的一切 但是 如果我转到我所连接的团队项目的设置页面 则会出现以下选项work正如预期 团队项目 源代码控制 团队项目 门 户设置
  • 如何从列表中删除元素?

    我有一个列表 我想从中删除一个元素 我怎样才能做到这一点 我尝试在参考手册中查找我认为该函数的明显名称 但没有找到合适的名称 Answer recommended by R Language Collective 如果您不想就地修改列表 例
  • 使用 Chromedriver 制作程序,出现错误:“无法使用此命令获取 Chrome 版本”

    这是我的代码 我这样做是因为当我尝试输入 chromedriver exe 的路径时 我要么收到 WebDriverException 消息 chromedriver exe 可执行文件可能有错误的权限 或 WebDriverExcepti
  • MVVM Light Toolkit - Messenger 使用事件聚合器还是中介器模式?

    有人可以帮我看看是否I Messenger 类 和实现 from MVVM轻工具包演示了使用事件聚合器模式 or 中介者模式 如果有人建议它部分遵循这两种模式 那么我会请求详细信息 说明实现的哪一部分类似于哪种模式以保持答案有效 Ref O
  • RoR - 选择禁用 include_blank 的标签

    我想要这样的结果