【问题标题】:Disable the previous dates of JQuery Calendar禁用 JQuery 日历的以前日期
【发布时间】:2012-02-01 06:32:16
【问题描述】:

我正在使用 4 个日期选择器日历,并且我想禁用之前选择的日期的日期。我从 JQuery 日期选择器中得到了一些想法,但它适用于 2 个日期选择器,但我必须使用 4 个日期选择器。因此,如果有人有解决方案,请与我分享.. 对于两个日期选择器,这是代码:

$(function() {
    var dates = $( "#txt1, #txt2" ).datepicker({
        minDate:0,
        maxDate:"+1Y",
        defaultDate: "+1w",
        dateFormat:'dd-mm-yy',
        numberOfMonths: 3,
        onSelect: function( selectedDate ) {
            var option = this.id == "txt1" ? "minDate" : "maxDate",
                instance = $( this ).data( "datepicker" ),
                date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat, selectedDate, instance.settings );
            dates.not( this ).datepicker( "option", option, date );
        }
    });
});

【问题讨论】:

    标签: javascript jquery html jquery-ui jquery-ui-datepicker


    【解决方案1】:

    如果您的文本输入有idstxt1txt4,那么像这样简单的事情就可以了:

    onSelect: function(date) {
        for(var i = 0; i < dates.length; ++i) {
            if(dates[i].id < this.id)
                $(dates[i]).datepicker('option', 'maxDate', date);
            else if(dates[i].id > this.id)
                $(dates[i]).datepicker('option', 'minDate', date);
        }
    }
    

    演示:http://jsfiddle.net/ambiguous/Rtbph/

    不需要您的id 属性来很好地比较的替代方法将使用index 因此:

    var dates = $('#first, #second, #third, #fourth').datepicker({
        // ...
        onSelect: function(date) {
            var me = dates.index(this);
            for(var i = 0; i < dates.length; ++i) {
                if(i < me)
                    $(dates[i]).datepicker('option', 'maxDate', date);
                else if(i > me)
                    $(dates[i]).datepicker('option', 'minDate', date);
            }
        }
    });
    

    那么您只需要确保您的初始选择器$('#first, #second, #third, #fourth') 将输入按正确的从左到右顺序排列。

    演示:http://jsfiddle.net/ambiguous/xaVZM/

    【讨论】:

    • 很棒的演示。谢谢。这就是我一直在寻找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多