【问题标题】:Associating label and radio button in HAML在 HAML 中关联标签和单选按钮
【发布时间】:2015-03-16 10:15:26
【问题描述】:

我有一个与 this 类似的问题,但我不知道如何在 HAML 中解决。

目前我的代码是:

.col-sm-10.radio-toolbar
   - YearGroup.all.each do |year_group|
    = f.label dom_id(year_group), year_group.name
    = f.radio_button :year_group_id, year_group.name

这给了我,在 html 中:

<div class="col-sm-10 radio-toolbar">
    <label for="test_year_group_1"></label>
    <input id="test_year_group_id_as" type="radio" name="test[year_group_id]" value="AS"></input>
    <label for="test_year_group_2"></label>
    <input id="test_year_group_id_a2" type="radio" name="test[year_group_id]" value="A2"></input>
</div>

如您所见,标签 for 有一个数字,而输入 id 有 as 或 a2。如何向标签添加值,使其与输入中的 id 相同?

【问题讨论】:

  • 正如我在问题的第一行中所说,这没有帮助,因为我的问题在于 HAML
  • 在 ham 中都一样,只需在您的标签调用中添加 value: 'AS'
  • 因为它是一个 .each 循环,所以我不能只为其添加值...我不认为?
  • 为什么不呢? HAML 不会以任何方式更改助手,您可以像在 ERB 中一样使用它们。 = f.label dom_id(year_group), year_group.name, value: year_group.name
  • 啊,好吧,我明白你的意思了,对不起。是的,确实有效,谢谢

标签: ruby-on-rails forms haml


【解决方案1】:

如果其他人遇到这个问题,我通过将其更改为:

.col-sm-10.radio-toolbar
  - YearGroup.all.each do |year_group|
    = f.label dom_id(year_group), year_group.name
    = f.radio_button :year_group, year_group.id

这迫使 for 标签的 HTML 和输入的 id 相同。

或者在 cmets 中查看 BrioSatse 的答案......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2016-02-14
    • 2011-06-29
    • 2014-06-24
    • 2012-10-16
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多