在加载时自动将所选日期设置为altField

时间:2012-01-09 16:44:53

标签: jquery jquery-ui jquery-ui-datepicker

我想在页面加载时设置datepicker字段和altField的值,我想知道datepicker中是否有一个选项可以自动执行(即无需调用{{1 }})。

我知道如果我做这样的事情:

setDate

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:+7}); date-div时,默认日期会在加载页面时自动添加到div字段。 但是,如果我使用的是文本字段而不是date-input,则它不会自动设置值(我必须在单独的行中调用div)。

我只是对此感到好奇,我已经实现了它调用setDate,但我想知道是否有什么可以自动完成,如果不是为什么? (因为它在使用div显示日历时确实有效。)

2 个答案:

答案 0 :(得分:0)

设置defaultDate的最佳方法是使用类似Moment.js的库来解析altField的值,因为解析日期的浏览器实现不可靠。例如,如果您的altField是datepicker字段之前的字段,并且它是ISO 8601格式,则可以执行以下操作:

$(this).datepicker({
    altField: $(this).prev(),
    altFormat: $.datepicker.ISO_8601,
    defaultDate: moment($(this).prev().val()).toDate()
});

这只会在打开日历时设置默认的选定日期。如果您还想填充datepicker字段,可以在使用上面的代码初始化datepicker后执行此操作:

$(this).datepicker("setDate", moment($(this).prev().val()).toDate());

答案 1 :(得分:-2)

不是100%优雅,因为它需要重复,但它适用于我:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:$("#date-input").val()});