【问题标题】:dynamically change maxdate jquery datepicker 7days from first date从第一个日期起 7 天动态更改最大日期 jquery datepicker
【发布时间】:2013-08-14 05:02:32
【问题描述】:

我看到有人问过类似的问题,但我不够熟练,无法调整其他代码以适应我的代码。有人可以通过显示此确切代码的解决方案来帮助我吗?非常感谢任何帮助。

我有一个 datepicker 脚本,我想要的行为是: 日期 1 字段: 选择从今天开始的 +1d 到最多 3 个月之间的任何头脑。 根据已选择的mindate,允许用户在date2 字段中选择mindate 7 天内的任何一天(基本上他们最多可以租用一个项目7 天)。

date2 注释 如果他们首先选择 date2,则允许 date1 选择 max -7days,但不允许该日期小于今天日期的 +1d。

我查看了很多回复,但找不到这个确切的例子,提前抱歉。

            $(function(){
                var dates = $( "#date1, #date2" ).datepicker({
                    defaultDate: "+1d",
                    minDate: 1,
                    maxDate: "+3M",
                    dateFormat: 'dd M yy',
                    showOtherMonths: true,
                    changeMonth: true,
                    selectOtherMonths: true,
                    required: true,
                    showOn: "focus",
                    numberOfMonths: 1,
                    onSelect: function( selectedDate ) {
                        var option = this.id == "date1" ? "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 );
                    }
                });
            });

【问题讨论】:

    标签: jquery datepicker


    【解决方案1】:

    在 var today 中,今天的日期以 August 14 2013 格式存储

    ID 为 from 的输入被分配日期选择器,日期说明从明天到接下来的 3 个月

    ID 为 to 的输入被禁用,直到用户在 ID 为 from 的输入中选择日期

    当日期在 id from 的输入中更改时,var date_diff 将计算当前日期与在输入中选择的日期之间的差值,其中 id 为 from,变量 date_diff 被传递给 @987654331 @ 输入中带有 id to 的选项类似地 var maxDate_d 计算为 var date_diff +7 days 根据您在一周时间内选择日期的要求,在选项 maxDate 中传递并启用。

    DEMO

    HTML

    <input type="text" id="from" />
    <input type="text" id="to" />
    

    js

    $(document).ready(function () {
        var d = new Date();
        var monthNames = ["January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December"];
        today = monthNames[d.getMonth()] + ' ' + d.getDate() + ' ' + d.getFullYear();
    
        $('#to').attr('disabled', 'disabled');
        $('#from').datepicker({
            defaultDate: "+1d",
            minDate: 1,
            maxDate: "+3M",
            dateFormat: 'dd M yy',
            showOtherMonths: true,
            changeMonth: true,
            selectOtherMonths: true,
            required: true,
            showOn: "focus",
            numberOfMonths: 1,
        });
    
        $('#from').change(function () {
            var from = $('#from').datepicker('getDate');
            var date_diff = Math.ceil((from.getTime() - Date.parse(today)) / 86400000);
            var maxDate_d = date_diff+7+'d';
            date_diff = date_diff + 'd';
            $('#to').val('').removeAttr('disabled').removeClass('hasDatepicker').datepicker({
                dateFormat: 'dd.mm.yy',
                minDate: date_diff,
                maxDate: maxDate_d
            });
        });
    
        $('#to').keyup(function () {
            $(this).val('');
            alert('Please select date from Calendar');
        });
        $('#from').keyup(function () {
            $('#from,#to').val('');
            $('#to').attr('disabled', 'disabled');
            alert('Please select date from Calendar');
        });
    
    });
    

    【讨论】:

    • 谢谢 Tushar Gupta...您解决了困扰我很久的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多