在我的应用中,我有一个range_field,用户可以选择0..100。但如果他们没有选择任何内容,我希望表单提交" null"或nil作为值而不是数值。
这可能吗?
如果我使用下面的语法,那么一切正常,除了值不是nil:
<%= 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}} %>
答案 0 :(得分: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
。