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

Avi*_*ash 2 jquery datepicker twitter-bootstrap

我想做什么:

我试图根据年份的当前值设置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">
Run Code Online (Sandbox Code Playgroud)

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];
}
Run Code Online (Sandbox Code Playgroud)

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

ivk*_*mer 24

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

  • 感谢您的评论.我没有看到interwebs上的任何其他地方,它声明你必须通过data()访问datepicker对象. (2认同)

Roh*_*mar 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>
Run Code Online (Sandbox Code Playgroud)

将此更改为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();
Run Code Online (Sandbox Code Playgroud)

小提琴