好的,我遇到了 jQuery 和 UI 日期选择器的问题。
本质上,我的新事件表单中有 3 个字段:Date、timeFrom、timeTo 我的 SQL 数据库中有 3 个字段:Date(datetime)、timeFrom(time)、timeTo(time)
日期字段,使用 datepicker 选择,提交看起来像这样:3/19/13 timeFrom 和 timeTo 将使用 timepicker 插件选择,看起来像这样:06:20 am AND 07:20 am
在我的 SQL 数据库中,提交的数据如下所示:2013-03-19、06:20:00.0、07:20:00.0
现在这一切都很好,直到我去编辑同一个事件。当我从数据库中调用它并再次填充我的输入时,它们最终看起来像这样:
日期:{ts'2013-03-19 00:00:00'}
时间从:1970-01-01 06:20:00.0
时间到:1970-01-01 07:20:00.0
因此,这意味着日期选择器和时间选择器都没有重新识别这些值。如果您只是再次提交表单,则无需重置日期,我的代码会引发错误。
所以我想我需要使用 jquery 来修改页面加载时的输入字段,以便它们的格式正确,并像这样显示:
$(function() {
//datefix
var thisdatevalue = $("input[name='event[eventdate]']").val();
var day1 = $("input[name='event[eventdate]']").val().getDate();
var month1 = $("input[name='event[eventdate]']").val().getMonth();
var year1 = $("input[name='event[eventdate]']").val().getFullYear();
var fullDate = day1 + "/" + month1 + "/" + year1;
$("input[name='event[eventdate]']").val(fullDate);
//timefix
var thistimefromvalue = $("input[name='event[timefrom]']").val();
var hour1 = $("input[name='event[timefrom]']").val().getHours();
var minute1 = $("input[name='event[timefrom]']").val().getMinutes();
var second1 = $("input[name='event[timefrom]']").val().getSeconds();
var fullTime = hour1 + ":" + minute1 + ":" + second1;
$("input[name='event[timefrom]']").val(fullTime) ;
//timefix
var thistimetovalue = $("input[name='event[timeto]']").val();
var hour2 = $("input[name='event[timeto]']").val().getHours();
var minute2 = $("input[name='event[timeto]']").val().getMinutes();
var second2 = $("input[name='event[timeto]']").val().getSeconds();
var fullTime = hour2 + ":" + minute2 + ":" + second2;
$("input[name='event[timeto]']").val(fullTime) ;
});
但是,上面的代码抛出 TypeError: $(...).val(...).getDay is not a function is not a function。
我认为这是一个标准的 javascript 函数,应该可以为我解决问题。
关于我如何做到这一点的任何想法?
谢谢!