在jQuery UI datepicker中找不到defaultDate

时间:2009-11-11 20:31:15

标签: jquery jquery-ui datepicker

我有一个表单文本字段,用于从数据库中提取日期(格式为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不会从输入字段中获取日期,它只是默认为“今天”值。

3 个答案:

答案 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 });