在更改选择框时更改BootStrap Datepicker的startDate和endDate参数

时间:2013-10-09 10:43:13

标签: jquery twitter-bootstrap datepicker

我想做什么:

我正在尝试根据当前的年份值设置startDate和endDate参数。 我认为目前我刚刚设置的内容是onLoad,但是我需要知道是否有一种方法可以让我在某些事件上触发startDate / endDate Params的更新

以下是代码:

html:

<select id="mySelect">
    <option value="2012-2013">2012-2013</option>
    <option value="2012-2013">2013-2014</option>
    <option value="2012-2013">2015-2016</option>
</select>
<input type="text" id="myStartDate" placeholder="dd-mon-yyyy" data-date-format="dd-M-yyyy" readonly="readonly">

js:

var myStartDt = $('#myStartDate')
    .datepicker({
    startDate: getStartDate(),
    endDate: getEndDate()

}).on('changeDate', function (ev) {

    myStartDt.hide();
}).data('datepicker');

function getStartDate() {
    var f = $('#mySelect').val().split('-');
    return '01/04/' + f[0];
}

function getEndDate() {
    var f = $('#mySelect').val().split('-');
    alert(f);
    return '31/03/' + f[1];
}

小提琴:http://jsfiddle.net/fRzyL/1/

2 个答案:

答案 0 :(得分:24)

我认为您可以简单地使用setStartDatesetEndDate方法:http://jsfiddle.net/ivkremer/fRzyL/21/

答案 1 :(得分:9)

更改option 2013-2014和2015-2016 的值

<select id="mySelect">
    <option value="2012-2013">2012-2013</option>
    <option value="2013-2014">2013-2014</option>
    <option value="2015-2016">2015-2016</option>
</select>

将其更改为 js

var myStartDt;
function mydatepicker(){
   myStartDt= $('#myStartDate')
        .datepicker({
        startDate: getStartDate(),
        endDate: getEndDate()
    }).on('changeDate', function (ev) {
        myStartDt.hide();
    }).data('datepicker');
}
 $("#mySelect").on('change',function(){
    // alert(this.value)
    $('#myStartDate').datepicker("remove");
    mydatepicker();//$('#id-element').datepicker("destroy");
});
mydatepicker();

Fiddle