【问题标题】:How to have a default radio button checked in Ruby?如何在 Ruby 中选中默认单选按钮?
【发布时间】:2020-08-06 22:33:24
【问题描述】:

我有一个使用 Ruby 构建的单选按钮,如下所示

      <p>Which design do you prefer to use? </p>
      <% [ 'Design 1', 'Design 2', 'Design 3', 'Design 4', 'Design 5' ].each do |theme| %>
          <br><%= radio_button_tag 'theme', theme, @theme == theme %>
          <%= label_tag "theme_#{theme}", theme.humanize %>
      <% end %>

我想确保默认情况下始终检查第一个元素(又名设计 1),除非用户选择其他设计。

【问题讨论】:

    标签: ruby-on-rails ruby radio-button


    【解决方案1】:

    你可以这样做:传入checked来检查项目

    <%= radio_button_tag 'theme', theme, checked: @theme.FIELD_NAME == 'design' %>
    

    详情请看这里http://apidock.com/rails/ActionView/Helpers/FormTagHelper/radio_button_tag

    回答您的评论:

    嗯,我不明白? :( 所以 <%= radio_button_tag 'theme', theme %> 变成 ??但这会引发错误?我只是 希望默认选择第一个单选按钮元素 -

    FIELD_NAME 是模型上列的名称。要检查第一项,您可以尝试以下操作:只需添加 checked: true 关键字

    <%= radio_button_tag 'theme', theme, @theme == theme, checked: true %>
    

    好的,所以您需要执行以下操作:

    <% [ 'Design 1', 'Design 2', 'Design 3', 'Design 4', 'Design 5' ].each_with_index do |theme, i| %>
      <% if i == 0 %>
          <br><%= radio_button_tag 'theme', theme, @theme == theme, checked: true %>
      <% else %>
          <br><%= radio_button_tag 'theme', theme, @theme == theme %>
      <% end %>
      <%= label_tag "theme_#{theme}", theme.humanize %>
    <% end %>
    

    【讨论】:

    • 啊,我不明白? :( 所以 ` ` 变为 &lt;%= radio_button_tag 'theme', theme, checked: @theme.FIELD_NAME == 'design' %&gt; ?? 但这会引发错误?我只想默认选择第一个单选按钮元素
    • 在你的情况下,使用这个:&lt;%= radio_button_tag 'theme', theme, @theme == theme, checked: true %&gt; 记得投票并检查答案。
    • 嗨,谢谢。所有元素都在源代码中保持为 checked=checked ,最后一个元素为 checked 。我不希望所有元素都已检查=已检查。 :(
    • @theme == theme, checked: true 应该只是 true
    • 其实代码可以简化成&lt;% [ 'Design 1', 'Design 2', 'Design 3', 'Design 4', 'Design 5' ].each_with_index do |theme, i| %&gt; &lt;br&gt;&lt;%= radio_button_tag 'theme', theme, @theme == theme || i == 0 %&gt; &lt;%= label_tag "theme_#{theme}", theme.humanize %&gt; &lt;% end %&gt;
    猜你喜欢
    • 2014-03-08
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2013-01-28
    • 2021-05-13
    • 2021-01-06
    相关资源
    最近更新 更多