【问题标题】:Change options_for_select to radio buttons将 options_for_select 更改为单选按钮
【发布时间】:2014-03-14 17:37:02
【问题描述】:

您好,我正在尝试更改以下内容:

  .form-group
    = label_tag :metric, 'Metric', class: 'sr-only'
    = select_tag :metric, options_for_select(Report::METRICS, selected: @report.metric), class: 'form-control'

类似于以下内容:

.form-group.pull-left
        = label_tag :metric, 'Metric', class: 'sr-only'
        .btn-group{"data-toggle" => "buttons"}
          %label.btn.btn-default.active
            %input#option1{name: "options", type: "radio", value: "value1"}/
            Value1
          %label.btn.btn-default
            %input#option2{name: "options", type: "radio", value: "value2"}/
            Value2

但是问题是,当我提交表单时,它实际上并没有提交单选按钮值。同样在提交后,当它应该保留在选定的单选按钮上时,它默认返回为无选择。

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap twitter-bootstrap-3 haml


    【解决方案1】:

    您可以使用radio_button_tag helper 并正确设置checked 参数。

    使用您的示例,它是这样的:

    .form-group.pull-left
      = label_tag :metric, 'Metric', class: 'sr-only'
        .btn-group{"data-toggle" => "buttons"}
          %label.btn.btn-default.active
            = radio_button_tag('options', 'value1', params[:options] == 'value1')
            Value1
          %label.btn.btn-default
            = radio_button_tag('options', 'value2', params[:options] == 'value2')
            Value2
    

    【讨论】:

    • 这非常接近。当页面重新加载事件时,它仍然会使第一个单选按钮处于活动状态,尽管 :options 现在反映了页面上的其他内容
    • 我认为我们需要以某种方式动态地将.active 类分配给与表单一起提交的按钮。关于如何做到这一点的任何想法?
    • 实际上已经解决了这个问题 - 只需使用 js 端的 addClass()
    猜你喜欢
    • 2015-08-06
    • 1970-01-01
    • 2014-04-09
    • 2021-03-14
    • 2013-05-05
    • 2013-11-21
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    相关资源
    最近更新 更多