2015-06-22 15 views
1

在我的应用程序中,我有一个range_field,用户可以选择0..100。但如果他们不选择任何东西,我希望表单提交“null”或零作为值而不是数值。Rails:获取f.range_field以提交null或零作为默认值

这可能吗?

如果我使用下面的语法,然后一切正常,除了值不为零:

<%= f.range_field :content, :value=> nil, :class=> "question-field percentage", :step => 10, :in => 0..100, :data => {:question => question.id} %> 

如果我用这个语法,那么价值为零,但我的其他选项不起作用:

<%= f.range_field :content, :value=> nil, :options=> {:in => 0..100, :step => 10, :class=> "question-field percentage", :data => {:question => question.id}} %> 

回答

1

您可以添加一个隐藏的复选框值来判断用户是否选择。

= f.range_field :content, :value=> nil, :class=> "question-field percentage", :step => 10, :in => 0..101, :data => {:question => question.id 
= check_box_tag :range_clicked, true, false, style:'display:none;' 

,然后添加一个js函数来告诉用户是否点击输入范围或不

$('#foobar_content').on('click',function(){ 
    $('#range_clicked').attr('checked',true); 
    }); 

如果用户选择输入范围的params[:range_clicked]值为true,否则,它的nil

+0

啊,聪明。谢谢! –