我有一个表单文本字段,用于从数据库中提取日期(格式为yyyy-mm-dd)。
<input class="" type="text" name="closingDate" id="closingDate" value="<?php echo $closingdate;?>" />@ Midday
然后我有一个jQuery日期选择器,它将获取其'defaultDate'值作为上面输入的value属性。
$(document).ready(function(){
$("#datepicker").datepicker({defaultDate: 'input#closingDate.attr('value')' , altField: 'input#closingDate' , altFormat: 'yy-mm-dd'});
});
(请注意:yy-mm-dd格式正确为yyyy-mm-dd,同时$ closingdate正确回显为yyyy-mm-dd,因为我在页面的其他位置检查了它。)
但是,datepicker不会从输入字段中获取日期,它只是默认为“今天”值。
答案 0 :(得分:3)
很抱歉这么晚,但为了完整起见,这对我有用。
基本上,您需要使用相同的dateFormat作为datepicker或传递Date对象。
$(document).ready(function(){
$("#datepicker").datepicker({
defaultDate: new Date($('input#closingDate').attr('value')),
altField: 'input#closingDate',
altFormat: 'yy-mm-dd'
});
});
这个问题是输入值变为''因此对编辑表格没有好处。
我个人将setDate方法与Date对象一起使用,这样我就可以在php中使用'2001-01-01'但在输入中显示“更好”的日期。
$(document).ready(function(){
$("#datepicker").datepicker({
altField: 'input#closingDate',
altFormat: 'yy-mm-dd',
dateFormat:'DD, d MM, yy'
});
$("#datepicker").datepicker("setDate", new Date($("input#closingDate").attr("value"));
});
答案 1 :(得分:0)
您不应该将默认日期放在文字字符串中,.attr()
函数会返回一个字符串:
$(document).ready(function(){
$("#datepicker").datepicker({
defaultDate: $('input#closingDate').attr('value'),
altField: $('input#closingDate'),
altFormat: 'yy-mm-dd'
});
});
答案 2 :(得分:0)
我知道这有点晚了但是在尝试在JQuery UI DatePicker中设置默认日期时遇到了完全相同的问题。
它继续使用我的asp.net DateTime并在其中添加随机年份。
我的解决方案:
var myDate= new Date('<%=myObject.myDate.ToLongDateString() %>');
$("#mytextbox").datepicker({ defaultDate: myDate });