Google Chrome中Kendo DateTimePicker自动关闭问题求助
解决Chrome 63中Kendo UI DateTimePicker点击后自动关闭的问题
我之前也踩过旧版Kendo UI和高版本Chrome兼容性的坑,你遇到的这个DateTimePicker弹出后立刻关闭的情况,核心原因是Chrome 63+对焦点事件、弹出层交互逻辑做了调整,而2015.2.805.545版本的Kendo还没适配这个变化。下面给你几个可行的解决思路:
一、最彻底的方案:升级Kendo UI版本
Telerik在后续的Kendo版本(比如2017R2及以后)里已经修复了这类Chrome兼容性问题,直接升级到最新稳定版,既能解决这个弹窗问题,还能顺带获得其他bug修复和新特性。如果项目允许升级,这是首选方案。
二、临时补丁:手动修复事件冲突
如果暂时没法升级Kendo,你可以在页面里加一段自定义脚本,阻止弹出层的事件冒泡,避免Chrome误触发关闭逻辑:
// 针对你的DateTimePicker控件添加事件处理 $("#cmpDatePicker").data("kendoDateTimePicker").bind("open", function() { var popupLayer = this.popup; // 给弹出层绑定mousedown事件,阻止事件冒泡 popupLayer.element.on("mousedown", function(event) { event.stopPropagation(); }); });
这段代码会在DateTimePicker弹出的瞬间,给弹出层加上事件拦截,让点击弹出层内部的操作不会触发外层的关闭逻辑,就能解决自动关闭的问题。
三、排查页面其他脚本冲突
有时候页面里的自定义脚本(比如焦点管理、模态框逻辑)也会干扰Kendo控件的弹出层。你可以先临时禁用非必要脚本,测试DateTimePicker是否恢复正常,如果正常,再逐步排查是哪个脚本导致的冲突。
另外,你代码里的valueUpdate: 'blur'设置本身没问题,但结合旧版Kendo和Chrome 63的焦点逻辑,可能会在弹出时触发意外的焦点切换,你可以暂时改成valueUpdate: 'input'试试,不过这个需要结合业务场景测试,避免影响现有功能。
内容的提问来源于stack exchange,提问作者Aditya Bhatnagar
相关产品推荐
相关产品推荐

