【问题标题】:in daterangepicker how can i set minDate Dynamically?在 daterangepicker 中,我如何动态设置 minDate?
【发布时间】:2019-01-24 06:08:43
【问题描述】:

我有两个日期输入,一个是开始日期,另一个是结束日期。 我想根据开始日期动态设置 minDate 以结束日期输入。 简而言之,我想防止用户选择小于开始日期的结束日期(在更改开始日期时我想更新 minDate 属性以输入结束日期)。

<input type="text" id="start_date" class="form-control"  name="start_date" data-input="date-range" >
<input type="text" id="end_date" class="form-control"  name="end_date" data-input="date-range" >

    $('[data-input=date-range]').each(function(index, picker) {
            $(picker).daterangepicker({
                alwaysShowCalendars: true,
                showCustomRangeLabel: true,
                startDate: picker.value ? moment(picker.value, "YYYY-MM-DD hh:mm:ii") : moment(),
                singleDatePicker: true,
                showDropdowns:true,
                autoUpdateInput: true,
                locale: {
                    cancelLabel: 'Clear',
                    format: 'MMMM D, YYYY'
                },
            });
        });

我在表单中使用daterangepicker

【问题讨论】:

    标签: javascript jquery date-range daterangepicker


    【解决方案1】:

    将 onChange 事件侦听器绑定到 start_date 输入并在处理程序内部,获取 start_date 的值并使用 moment js 再增加一天,因为您已经在使用它。

    然后使用minDate (Link) 属性重新初始化end_date 日历输入,如下所示。这样就无法选择距开始时间不到 1 天的先前日期。

    $('#start_date').on('change', function(){
        $('#end_date').daterangepicker({
                alwaysShowCalendars: true,
                showCustomRangeLabel: true,
                minDate:moment($('#start_date').val(), "MMMM D, YYYY").add(1, 'd');
                singleDatePicker: true,
                showDropdowns:true,
                autoUpdateInput: true,
                locale: {
                    cancelLabel: 'Clear',
                    format: 'MMMM D, YYYY'
                },
    });
    

    确保在使用 moment 解析日期时使用适当的格式。

    编辑: 看来您可以直接改变对象而无需重新初始化

    $('#end_date').data('daterangepicker').minDate = new_date_you_obtained
    

    【讨论】:

    • 您正在重新初始化该输入,但实际上我不想这样做,我想使用以前的对象并希望动态更新 minDate。
    • 我不认为你可以在初始化后改变日期范围选择器
    • 直接修改属性请查看更新答案
    • 这对我有用。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-11-21
    • 2022-11-23
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多