以编程方式更改 JQUERY 日历控件中的日期限制

Programmatically change datelimit in JQUERY calendar control

我似乎在以编程方式设置 JQuery 日历控件的 dateLimit 时遇到问题。

当页面最初加载时,我像这样设置日历控件:

$('#dashboard-report-range').daterangepicker({
                opens: (App.isRTL() ? 'right' : 'left'),
                startDate: moment($('#hidLatestData_Date').val()).add('days', -6),
                endDate: moment($('#hidLatestData_Date').val()),//.add('days', 1),
                minDate: '01/01/2012',
                maxDate: moment($('#hidLatestData_Date').val()),//.add('days', 2),
                dateLimit: {
                    days: 6
                },
                showDropdowns: false,
                showWeekNumbers: true,
                timePicker: false,
                timePickerIncrement: 1,
                timePicker12Hour: true,
                ranges: {
                    'Today': [moment(), moment().add('days', 0)],
                    'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1).add('days', 0)],
                    'Last 7 Days': [moment().subtract('days', 6), moment()]//,
                    //'Last 30 Days': [moment().subtract('days', 29), moment()],
                    //'This Month': [moment().startOf('month'), moment().endOf('month')],
                    //'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
                },
                buttonClasses: ['btn'],
                applyClass: 'blue',
                cancelClass: 'default',
                format: 'DD/MM/YYYY',
                separator: ' to ',
                locale: {
                    applyLabel: 'Apply',
                    fromLabel: 'From',
                    toLabel: 'To',
                    customRangeLabel: 'Custom Range',
                    daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
                    monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
                    firstDay: 1
                }
            }

在页面上,我有一个下拉列表。如果进行了特定选择,我想将 dateLimit 值更改为 1,而不是 6。

我尝试了很多不同的选项,但似乎没有一个适合我。任何帮助将不胜感激。

我实际上也必须更改开始时间,但(下面)的代码 100% 正确工作。

$("#dashboard-report-range").datepicker('option', { startDate: new Date(hidEndDate)});

这些是我尝试过的选项,还有一些我什至不记得了:

    $("#dashboard-report-range").datepicker('option', { dateLimit: "days:1"});

$("#dashboard-report-range").datepicker('option', { dateLimit: { "days":"1"}});

$("#dashboard-report-range").datepicker('option',  dateLimit: { "days":"1"});

$("#dashboard-report-range").datepicker('option', dateLimit: "days:1");

$("#dashboard-report-range").datepicker('option', dateLimit, "days:1");

$("#dashboard-report-range").datepicker('option',  "dateLimit", "days:1"  );

您可以尝试以下操作:

$("#dashboard-report-range").datepicker('option',  "dateLimit.days", "1"  );

更新 1:

您可以通过以下方式访问datarangepicker数据:

var drp = $('#dashboard-report-range').data('daterangepicker');
drp.dateLimit.days = 1;

更新二:

您还可以通过以下方式更新属性:

drp.ranges['Today'] = [moment(), moment().add('days', 1)]

这是更新的 jsFiddle:http://jsfiddle.net/pvskz78d/3/