提问人:Dango 提问时间:9/1/2016 最后编辑:Dango 更新时间:9/1/2016 访问量:809
Rails 在文本字段中显示日期时间
Rails display datetime in text field
问:
有一个 _form.html.erb,我想在文本字段中显示日期时间,而不是下拉菜单。我下面的代码在我的文本字段中没有显示任何内容,我该怎么做......
<div class="field">
<%# f.label :time %>
<%# f.datetime_select :time %>
<%= f.text_field:time, :value => timesheet.user, :readonly => true %>
</div>
下图如下图
@luissimo提到javascript之后,我想出了jquery中的一段代码
var tm1 = $( "#timesheet_time_1i" ).val();
var tm2 = $( "#timesheet_time_2i" ).val();
var tm3 = $( "#timesheet_time_3i" ).val();
var tm4 = $( "#timesheet_time_4i" ).val();
var tm5 = $( "#timesheet_time_5i" ).val();
var tm_all = tm1 + '-'+ tm2 + '-' + tm3 + ' ' + tm4 + ':' + tm5;
$('#timesheet_time').val(tm_all);
答:
1赞
luissimo
9/1/2016
#1
首先将代码更改为此代码;
<div class="field">
<%# f.label :time %>
<%# f.datetime_select :time %>
<p class="output_time"></p>
</div>
然后找到 Rails 预定义的 datetime_select 的 id。使用 inspect 元素找到它。我将调用 id 的 #id1 来 #id5,只是为了解释目的。
然后在jQuery中执行如下操作;
$(".output_time").text( ($("#id3").val()) + ' ' + ($("#id2").find(":selected").text()) + ' ' + ($("#id1").val()) );
$("#id3").change(function()
{
$('.output_time').text( ($(this).val()) + ' ' + ($("#id2").find(":selected").text()) + ' ' + ($("#id1").val()) ) ;
});
$("#id2").change(function()
{
$('.output_time').text( ($("#id3").val()) + ' ' + ($(this).find(":selected").text()) + ' ' + ($("#id1").val()) ) ;
});
$("#id1").change(function()
{
$('.output_time').text( ($("#id3").val()) + ' ' + ($("#id2").find(":selected").text()) + ' ' + ($(this).val()) ) ;
});
我在这里使用了 3 个 id,但你有 5 个,所以你可以在它后面添加它们,这样你甚至可以学习一些 jQuery 并制作自己的输出格式(DD-MM-YY-TT 等)。
评论