【问题标题】:Rails: How to add an empty 'required' attribute to a radio_button_tagRails:如何将空的“必需”属性添加到 radio_button_tag
【发布时间】:2014-07-21 13:57:43
【问题描述】:

我正在尝试使用radio_button_tag 来生成单选按钮标签,例如:

<input type="radio" ... required>

为了添加表单验证(我正在使用 Foundation 并尝试使用 Abide 库)。我能得到的最接近的是:

radio_button_tag 'my_radio', ... , required: ''

# => <input type="radio" ... required="required">

这似乎足以让 Abide 工作,但有没有一种方法可以让我从 Rails 助手中得到我想要的东西?我试过用required: true 代替required: '',但它的行为是一样的。

【问题讨论】:

  • 抱歉,没听懂。你能解释一下你的用例吗?如果您想让单选按钮成为强制性的,您可以将其设置为默认选中。

标签: html ruby-on-rails validation


【解决方案1】:

复制/粘贴没有文字答案,所以我提供了一个。

<%= radio_button_tag(:model_id, model.id, false, required: 'required') %>

【讨论】:

    【解决方案2】:

    如您所见:https://github.com/rails/rails/blob/4de8851289077239ecc91473bdba30f8cf6727bb/actionview/lib/action_view/helpers/tag_helper.rb#L149

    Rails 只是用“if value”查找值的存在。一个空白字符串被认为是一个值,因为它不是 nil,这就是触发 rails 包含“required='required'”属性的原因。

    Abide 真的需要标签为空吗?看起来它可能只是在检查“必需”属性的存在,因此它可能不关心该属性是否具有值。

    【讨论】:

    • Rails 总是向 html 元素添加键/值属性,它被认为是必需的和 required="required" 相同的东西。第二种其实是设置属性的首选方式。
    • 遵守required="required" 似乎没问题,我只是觉得没有那一点会更干净。 @Rafal 我能够使用form_tag ... , data: {abide: ''} 在我的表单选项卡中添加一个无价值的data-abide 属性,这让我觉得我可以在单选按钮中做类似的事情。也许data 属性的处理方式不同。为什么required="required" 更可取?
    • html5 标准允许属性最小化。 xhtml5 没有。所以我认为 rails 遵循 xhtml5 更好地映射到哈希。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 2020-04-27
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多