javascript - 手动编辑日期或清除日期时, Bootstrap 日期选择器更改日期事件不会触发

标签 javascript jquery twitter-bootstrap datepicker bootstrap-datepicker

<script type="text/javascript">
    // When the document is ready
    $(document).ready(function () {
        $('.datepicker').datepicker({
            format: "yyyy-mm-dd",
        }).on('changeDate', function(ev){
            // do what you want here
            $(this).datepicker('hide');
        }).on('changeDate', function(ev){
            if ($('#startdate').val() != '' && $('#enddate').val() != ''){
                $('#period').text(diffInDays() + ' d.'); 
            } else {
                $('#period').text("-");
            }
        });
    });
</script>

这就是我的日期选择器的样子。所以基本上当我通过单击鼠标更改日期时它效果很好,但是当我用键盘手动更改日期或手动清除日期更改日期事件时不会被调用。这是一个错误还是我在这里做错了什么?

最佳答案

如果您想响应手动输入,则必须在输入本身上使用 change 事件,因为 changeDate 事件仅适用于使用以下方式更改日期时日期选择器。

尝试这样的事情:

$(document).ready(function() {
    $('.datepicker').datepicker({
        format: "yyyy-mm-dd",
    })
    //Listen for the change even on the input
    .change(dateChanged)
    .on('changeDate', dateChanged);
});

function dateChanged(ev) {
    $(this).datepicker('hide');
    if ($('#startdate').val() != '' && $('#enddate').val() != '') {
        $('#period').text(diffInDays() + ' d.');
    } else {
        $('#period').text("-");
    }
}

关于javascript - 手动编辑日期或清除日期时, Bootstrap 日期选择器更改日期事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507671/

相关文章:

jquery - Highcharts 标题动画

javascript - 带操作的 redux 调用缩减器

javascript - 使用 "a"标签时如何触发点击事件

javascript - jQuery/JavaScript 在切换按钮查询上显示/隐藏事件

jquery - 有哪些优秀的 jQuery 插件可以突出显示代码和 XML 内容?

javascript - 在 Django View 中调用 'request.POST' 时 Ajax POST 不发送数据

javascript - HTML 5 Shoutcast 流不工作

php - 表字段(数据库)中坐标的集合

javascript - 使用 javascript 设置选项的多个值(添加)

javascript - 获取面板展开后元素的更新偏移量