【问题标题】:Changing startDate and endDate params of BootStrap Datepicker on change of a select Box更改选择框时更改 BootStrap Datepicker 的 startDate 和 endDate 参数
【发布时间】:2013-10-09 10:43:13
【问题描述】:

我想做什么:

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

代码如下:

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/

【问题讨论】:

    标签: jquery twitter-bootstrap datepicker


    【解决方案1】:

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

    【讨论】:

    • 感谢您的评论。我在互联网上的其他任何地方都没有看到它声明您必须通过 data() 访问 datepicker 对象。
    • 尽管这很完美。对我来说,我可以在加载页面时设置一次开始/结束日期,但稍后没有应用更改。但是,使用此方法确实允许动态更新开始/结束日期。
    【解决方案2】:

    更改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

    【讨论】:

    • 不起作用,之前已经尝试过了。我认为当页面加载时,日期选择器从 getStartDate 和 getEndDate 函数获取值并将其设置为参数(仅一次)。结果,无论我选择什么选项,它都会显示 2012-2013 的日期
    • 不。和以前一样。
    • 像魅力一样工作!感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    相关资源
    最近更新 更多