我正在尝试为我的datepicker设置startDate以及autoclose:true。但是,它不起作用。
你能指出我做错了什么吗?我在http://jsfiddle.net/alagappanr/9Xek7/
的jsfiddle上有代码Effective Date: <input type=text size=10 id=effectivedate maxlength=10 name=efdate><br/>
Expiration Date: <input type=text size=10 maxlength=10 name=exdate id=expirationdate>
我为datepicker编写的JavaScript如下:
jQuery(function() {
var efDP = jQuery("#effectivedate");
var exDP = jQuery("#expirationdate");
efDP.datepicker("setDate", new Date());
efDP.datepicker("update");
exDP.datepicker("setDate", new Date(Date.now()+259200000));
exDP.datepicker("update");
exDP.datepicker({autoclose:true});
efDP.datepicker({
startDate: new Date(),
autoclose:true,
});
efDP.on("changeDate", function(ev){
var effectDate = new Date(jQuery("#effectivedate").val());
jQuery("#expirationdate").datepicker("setDate", new Date(effectDate.getTime()+259200000));
jQuery("#expirationdate").datepicker("update");
});
});
答案 0 :(得分:1)
您正尝试在前几行更新不存在的日期选择器。 exDP.datepicker({autoclose:true});
创建一个新实例。您必须直接设置选项:
jQuery(function() {
var efDP = jQuery("#effectivedate").datepicker({autoclose:true});
var exDP = jQuery("#expirationdate").datepicker({autoclose:true});
efDP.datepicker('setDate', new Date()).datepicker('update');
exDP.datepicker("setDate", new Date(Date.now()+259200000)).datepicker('update');
efDP.on("changeDate", function(e){
exDP.datepicker("setDate", new Date(e.date.getTime() +259200000)).datepicker('update');
});
});
http://jsfiddle.net/svierkant/9Xek7/7/
请查看文档,了解是否可以重用事件中的对象。在.on
函数的第一行,您将从对象(.val()
)获取一个字符串,并再次从中生成一个Date
对象。但是changeDate
event返回一个Date对象(可以重用)。编码更简单,代码更易读,更易于维护。
答案 1 :(得分:1)
你应该使用以下编码风格。
var efDP = jQuery("#effectivedate");
efDP.datepicker({
startDate: new Date(),
autoclose:true,
});
efDP.datepicker("update", new Date(Date.now()+259200000));