Bootstrap Datepicker属性未设置

时间:2014-04-21 14:48:12

标签: javascript jquery css twitter-bootstrap datepicker

我正在尝试为我的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");
         });
   });

2 个答案:

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