在编辑表单的 Rails 4 上隐藏 jquery.timepicker 的空日期值
hide empty date value for jquery.timepicker on Rails 4 on edit form
我正在使用 John Thornton 的 JQuery Timepicker,它作为“新”表单上的下拉菜单非常有用(这意味着下拉菜单使用值“09:00 AM”填充输入字段)。
但是,当我呈现 EDIT 表单并且 time_start 或 time_end 列有一个值时,输入字段会添加日期并且看起来像这个“2000-01-01 09:00:00 UTC”。我可以单击下拉菜单中的“09:00 AM”以更改输入,但我希望现有的 time_start 或 time_end 值在没有日期的情况下呈现在输入字段中.很奇怪。
我正在使用 rails 4.2 和 simple_form,我的数据库字段是时间字段,而不是日期时间。
这是我的 rails 片段:
project/edit.html.slim
#newProjectTimeMenu
.row
.col-md-4.col-sm-6.col-xs-6
= f.label :time_start, label: 'Time Start'
.input-group.date
span.input-group-addon
i.fa.fa-clock-o
= f.text_field :time_start, required: true, class: 'form-control time-end'
.col-md-4.col-sm-4.col-xs-6.pr0
= f.label :time_end, label: 'Time End'
.input-group.date
span.input-group-addon
i.fa.fa-clock-o
= f.text_field :time_end, required: true, class: 'form-control time-end'
这里是 jquery 我在同一页面上打电话:
$('#newProjectTimeMenu .time-start, #newProjectTimeMenu .time-end').timepicker({
'minuteStep': 30,
'minTime': "09:00:00",
'maxTime': "22:00:00",
'defaultTime': true,,
});
可行的解决方案:
多亏了下面的答案,我有了解决方案……但我不得不将其翻译成“simple_form”。这是我使用的代码:
= f.text_field :time_end, required: true, class: 'form-control time-end', value: "#{ f.object.time_end.strftime("%I:%M %p") rescue nil }"
在= f.text_field :time_start, required: true, class: 'form-control time-end'
,
请尝试添加:
input_html: { value: "#{ f.object.time_start.strftime("%I:%M %p") rescue nil }" }
我正在使用 John Thornton 的 JQuery Timepicker,它作为“新”表单上的下拉菜单非常有用(这意味着下拉菜单使用值“09:00 AM”填充输入字段)。
但是,当我呈现 EDIT 表单并且 time_start 或 time_end 列有一个值时,输入字段会添加日期并且看起来像这个“2000-01-01 09:00:00 UTC”。我可以单击下拉菜单中的“09:00 AM”以更改输入,但我希望现有的 time_start 或 time_end 值在没有日期的情况下呈现在输入字段中.很奇怪。
我正在使用 rails 4.2 和 simple_form,我的数据库字段是时间字段,而不是日期时间。
这是我的 rails 片段:
project/edit.html.slim
#newProjectTimeMenu
.row
.col-md-4.col-sm-6.col-xs-6
= f.label :time_start, label: 'Time Start'
.input-group.date
span.input-group-addon
i.fa.fa-clock-o
= f.text_field :time_start, required: true, class: 'form-control time-end'
.col-md-4.col-sm-4.col-xs-6.pr0
= f.label :time_end, label: 'Time End'
.input-group.date
span.input-group-addon
i.fa.fa-clock-o
= f.text_field :time_end, required: true, class: 'form-control time-end'
这里是 jquery 我在同一页面上打电话:
$('#newProjectTimeMenu .time-start, #newProjectTimeMenu .time-end').timepicker({
'minuteStep': 30,
'minTime': "09:00:00",
'maxTime': "22:00:00",
'defaultTime': true,,
});
可行的解决方案: 多亏了下面的答案,我有了解决方案……但我不得不将其翻译成“simple_form”。这是我使用的代码:
= f.text_field :time_end, required: true, class: 'form-control time-end', value: "#{ f.object.time_end.strftime("%I:%M %p") rescue nil }"
在= f.text_field :time_start, required: true, class: 'form-control time-end'
,
请尝试添加:
input_html: { value: "#{ f.object.time_start.strftime("%I:%M %p") rescue nil }" }