【问题标题】:Replace Radio Button with Label?用标签替换单选按钮?
【发布时间】:2016-03-28 22:18:22
【问题描述】:

我一直点击未选中的单选按钮标签“习惯”,但它不会被选中。为什么 HTML 版本可以工作?

<% Challenge::CATEGORY.each do |c| %>
  <%= f.radio_button(:category, c, :class => "date-format-switcher", checked: (c=='goal')) %>
  <%= label(c, c) %>
<% end %>

HTML 输出

<input class="date-format-switcher" type="radio" value="goal" checked="checked" name="challenge[category]" id="challenge_category_goal">
<label for="goal_goal">Goal</label>

<input class="date-format-switcher" type="radio" value="habit" name="challenge[category]" id="challenge_category_habit">
<label for="habit_habit">Habit</label>

css

  input[type="radio"] {
      display: none;
  }
  input[type="radio"]:checked + label {
      border: 1px solid red;
  }

challenge.rb

CATEGORY = ['goal', 'habit']

我关注了这个JSfiddle example

更新

使用@Wowsk 答案作为指导,我尝试通过将:category&lt;%= label(c, c) %&gt; 合并,使ruby 输出适当的html。它没有与&lt;%= label(category: c, c) %&gt;&lt;%= label(:category(c, c)) %&gt;&lt;%= label(category: c, category: c) %&gt; 等尝试一起工作

【问题讨论】:

    标签: javascript html css ruby-on-rails ruby


    【解决方案1】:

    问题是您使用了错误的for 属性。

    for 属性是您希望它作为 id 的元素。

    将 for 值更改为前一个输入的 id,它应该像一个魅力一样工作。

    input[type="radio"] {
          display: none;
      }
      input[type="radio"]:checked + label {
          border: 1px solid red;
      }
    <input class="date-format-switcher" type="radio" value="goal" checked="checked" name="challenge[category]" id="challenge_category_goal">
    <label for="challenge_category_goal">Goal</label>
    
    <input class="date-format-switcher" type="radio" value="habit" name="challenge[category]" id="challenge_category_habit">
    <label for="challenge_category_habit">Habit</label>

    【讨论】:

    • 感谢 Wowsk 的大力帮助!我现在明白了逻辑,但你知道如何使用我拥有的 ruby​​ 代码生成 HTML 输出吗?
    • 我根本不懂 Ruby,但我可以试试...为单选按钮设置 id 的变量是什么?
    • 我认为它会自动设置为层次结构的一部分。目标是类别的一部分,也是挑战的一部分。是的,我应该知道这一点,但我也会继续努力。
    • 很抱歉,但我想我已经帮不上什么忙了。我从未接触过 Ruby。
    • 没问题。感谢您的尝试!
    猜你喜欢
    • 2012-12-12
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    相关资源
    最近更新 更多