Ruby On Rails:首次选择单选按钮

时间:2013-02-13 07:51:00

标签: ruby-on-rails radio-button

我是RoR的新手。我想知道如何在创建新记录时第一次选择单选按钮默认值?

我试过

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

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

如何解决此问题。

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

3 个答案:

答案 0 :(得分:2)

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

所以在控制器的create方法中你有类似

的东西
@now = params[:scheduler][:now]

在控制器的新方法中:

@now = true

并在视图中:

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

答案 1 :(得分:0)

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

这就像当您输入表单字段然后刷新表单或返回后再次返回表单时,您丢失了之前填充的数据。

解决方案:

我说获取已检查的单选按钮值并使用jquery将其设置为 -

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

答案 2 :(得分:0)

尝试:

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