【问题标题】:Ruby On Rails: make radio button default selected first timeRuby On Rails:第一次默认选中单选按钮
【发布时间】:2013-01-28 17:12:10
【问题描述】:

我是 RoR 的新手。我想知道我们如何在创建新记录时让单选按钮默认选中?

我试过了

<%= radio_button_tag 'scheduler', 'now', true%> Now <br>
<%= radio_button_tag 'scheduler', 'future'%> Future<br> 

它使第一个单选按钮(现在有值)被选中,但是当我选择第二个单选按钮(未来)并将表单上的其他必填字段留空时,第一个单选按钮再次被选中而不是第二个单选按钮。

如何解决这个问题。

注意:字段“scheduler”只是此表单上的一个虚拟字段,如果选择了“Future”选项并且该 datetimepicker 字段“schedule_date”是实际的,它将显示另一个包含 datetimepicker 的 HTML模型的领域。如果发布选项“现在”,那么它会将当前日期和时间保存到该字段“schedule_date”的数据库表中。所以我只需要使用这些单选按钮来显示/隐藏 HTML。

【问题讨论】:

    标签: ruby-on-rails radio-button


    【解决方案1】:

    试试:

    <%= radio_button_tag 'scheduler', 'now', true %> Now <br>
    <%= radio_button_tag 'scheduler', 'future', params[:scheduler].eql?("future") %> Future<br> 
    

    【讨论】:

    • 谢谢,我可以将此字段“调度程序”作为我的模型的虚拟字段吗?
    • 您的代码工作正常,但我看到当我选择“未来”选项时,它会被选中,但现在的属性也设置为“checked = 'checked'”,因为我们已经给出了硬编码这个和那个的真实值是不正确的。
    【解决方案2】:

    这是真的,因为您已将第一个单选按钮设置为默认选中。因此,当您选择第二个单选按钮然后刷新/提交表单时,页面会回到原来的位置,丢失之前选择的第二个按钮。

    这就像你输入表单域然后刷新表单或返回后再次返回表单时,你丢失了之前填写的数据。

    解决方案:

    我说获取选中的单选按钮值并使用 jquery as 设置它-

        $('input[name="myradios"]').change(function() {
                 alert($(this).val());
        });
    

    【讨论】:

    • 我遇到了同样的问题,但最好的办法是什么?
    • 我不想为此使用 JQuery。
    【解决方案3】:

    当您说“将必填字段留空”时,我猜您正在提交表单并从服务器取回编辑表单并带有警告闪烁?我认为您需要在这里做的不是将 Now 字段设置为 true,而是需要在创建新表单时使用变量并将其设置为 true on。然后,当您将表单提交到服务器时,控制器的创建方法应该查看参数哈希,设置变量,如果提交失败验证应该返回编辑表单,将 Now 变量设置为 false,Future 变量设置为 true

    所以在控制器的创建方法中你有类似的东西

    @now = params[:scheduler][:now]
    

    在你拥有的控制器的新方法中:

    @now = true
    

    在视图中:

        <%= radio_button_tag 'scheduler', 'now', @now%> Now <br>
    <%= radio_button_tag 'scheduler', 'future', !@now %> Future<br> 
    

    【讨论】:

    • 好的,这段代码是否会默认只在第一次选择“现在”选项?
    猜你喜欢
    • 2014-03-08
    • 2011-04-11
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    相关资源
    最近更新 更多