Bootstrap datepicker- onchange仅应在用户进行更改时启动

问题描述 投票:0回答:2

在我的Xpages应用程序中,我在输入字段上启用了一个引导日期选择器:

$(document).ready(
    function() {
        var dateFormat = "#{javascript: app['date_format_date_only_lowercase']}";
        x$('#{id:inpCardValid}').datepicker({
            language: sv,
            format: (dateFormat),
            weekStart: 1,
            todayBtn: true,
            clearBtn: true,
            daysOfWeekHighlighted: "0,6",
            calendarWeeks: true,
            autoclose: true,
            todayHighlight: true
        }).on('changeDate', checkDate);
    }
)

function checkDate() {
    var from = x$('#{id:inpCardValid}').val();
    var validDate = new Date(from);
    var checkDate = Date.now();
    checkDate = addDays(checkDate, 30);
    if (checkDate >= validDate) {
      XSP.openDialog("#{id:dlgLCardValidDate}")
    }
}

function addDays(date, days) {
    var result = new Date(date);
    result.setDate(result.getDate() + days);
    return result;
}

但是,在加载页面时onchange已经开始生效(可能是因为日期选择器需要格式化日期)。我只希望在用户进行更改时调用onchange函数。

我该怎么做?

javascript twitter-bootstrap datepicker xpages
2个回答
0
投票

我想,您可以在加载后通过任何方法设置日期,否则加载时不会触发更改事件。


0
投票

尝试使用datepicker的hide事件进行计算,可能是格式化程序启动了onchange事件

© www.soinside.com 2019 - 2024. All rights reserved.