如何在日期中删除日期时间分隔符和时间分隔符,选择由gem创建的名为simple_form?
我认为我必须覆盖simple_form用于创建日期选择的initialize
方法,或者在我的表单输入中传递哈希选项。但它没有用。
我尝试这样的事情:
f.input :as => :date, options:{:date_separator => '', :time_separator => ''}
感谢帮助我
答案 0 :(得分:3)
您必须进行此更改才能使其正常工作:
f.input :your_attribute, as: :date, date_separator: '', time_separator: ''
# or
f.input :your_attribute, as: :date, date_separator: '<span>:</span>'
这两个应该有效。
答案 1 :(得分:0)
你不能只使用simple_form。
我建议在控制器中处理。
protected
def process_business_hour(params)
params[:business_hour] = "#{params[:"business_hour(4i)"].to_i}:#{params[:"business_hour(5i)"].to_i}"
return params
end
这真是一团糟,但如果有其他好方法(只使用simple_form),请告诉我。
更新
<%= f.date_select 'business_hour_mon_start', {minute_step: 5}, class: "timeselect timeselect_mon", onChange: "javascript:selectBusinessHour(this.value)" %>~
<%= f.time_select 'business_hour_mon_end', {minute_step: 5, ignore_date: :true}, class: "timeselect timeselect_mon", onChange: "javascript:selectBusinessHour(this.value)" %>
这种方法可以..
http://i.stack.imgur.com/5Z0ur.png
检查上面的图片..
如果还不够,你可以像这样分手。
<select id="parkinglot_business_hour_mon_start_1i" name="parkinglot[business_hour_mon_start(1i)]" onchange="javascript:selectBusinessHour(this.value)">
参见(1i)
答案 2 :(得分:0)
上传另一个答案,因为我没有超过10个或更多声誉。
所以我无法添加图片或两个以上的链接..
我最后的建议是混合使用jQuery datepicker,而不仅仅是simple_form。
http://oi58.tinypic.com/2d1mps2.jpg
检查上面的图片..
http://jqueryui.com/datepicker/
jQuery datepicker有很好的文档记录,易于实现。
<input type="text" id="date_start" class="form-control" value="<%= 1.month.ago.to_date %>">
<script>
$(function() {
$( "#date_start" ).datepicker({
dateFormat: "yy-mm-dd",
defaultDate: "-1w -1d",
changeMonth: true,
maxDate: "-1",
onClose: function( selectedDate ) {
$( "#date_start" ).datepicker( "option", selectedDate );
}
});
});
</script>
抱歉,这个答案不是一个直接的解决方案。
自定义simple_form总是非常烦人的慢跑。
答案 3 :(得分:0)
这是一个不理想的解决方案,但有效:
<script>
var el = $("#mydiv");
el.html(el.html().replace("—", ""));
el.html(el.html().replace(":", ""));
</script>