jquery ui 对话框中的基础日期选择器在 Internet Explorer 中不起作用
Foundation datepicker in jquery ui dialog not working in internet explorer
我在应用程序的浏览器测试期间检测到一个奇怪的错误:
https://jsfiddle.net/jeroendemuyt/w6prze3t/91/
我有一个 jQuery UI 对话框,其中有一个输入元素,我在其中应用了基础日期选择器功能。
<div class="field-dialog-2">
<input type="text" class="load-datepicker">
</div>
在大多数浏览器中,这都可以正常工作。但是,在 Internet Explorer 11 中,这会中断。当对话框展开时,您不能使用后退和前进按钮。当我按下按钮时,它总是想回到开始 month/decenium/...
如您在 fiddle 中所见,我尝试了多种方法来查看问题的原因。 jquery 对话框与基础日期选择器的组合似乎在 Internet Explorer 中效果不佳。
有人知道如何解决这个问题吗?我真的希望它与 IE
兼容
经过大量试验,我设法自己解决了这个问题。
问题在于,出于某种原因,IE 尝试在单击日期选择器中的任意位置后再次将焦点置于对话框中。
因此,当我单击日期选择器中的任何控件时,除了更改 month/decenium/... 的正常单击处理程序外,它还会将焦点置于对话框中。由于 JQuery UI 对话框具有自动对焦功能,这意味着对话框将焦点传递给日期选择器输入元素,从而将日期选择器重置为开始日期。这基本上使我在日期选择器上所做的任何操作无效。
我已通过手动覆盖 javascript 代码中的自动对焦功能并在对话框获得焦点时强制它不执行任何操作来解决此问题。由于我在我的应用程序中对这个自动对焦事件没有做任何事情,所以这对我来说没有任何影响
$.ui.dialog.prototype._focusTabbable = $.noop;
我也用我的解决方案更新了我的 jsFiddle:https://jsfiddle.net/jeroendemuyt/w6prze3t/110/
我希望这个解决方案可以减轻其他人的压力:)
我在应用程序的浏览器测试期间检测到一个奇怪的错误:
https://jsfiddle.net/jeroendemuyt/w6prze3t/91/
我有一个 jQuery UI 对话框,其中有一个输入元素,我在其中应用了基础日期选择器功能。
<div class="field-dialog-2">
<input type="text" class="load-datepicker">
</div>
在大多数浏览器中,这都可以正常工作。但是,在 Internet Explorer 11 中,这会中断。当对话框展开时,您不能使用后退和前进按钮。当我按下按钮时,它总是想回到开始 month/decenium/...
如您在 fiddle 中所见,我尝试了多种方法来查看问题的原因。 jquery 对话框与基础日期选择器的组合似乎在 Internet Explorer 中效果不佳。
有人知道如何解决这个问题吗?我真的希望它与 IE
兼容经过大量试验,我设法自己解决了这个问题。
问题在于,出于某种原因,IE 尝试在单击日期选择器中的任意位置后再次将焦点置于对话框中。
因此,当我单击日期选择器中的任何控件时,除了更改 month/decenium/... 的正常单击处理程序外,它还会将焦点置于对话框中。由于 JQuery UI 对话框具有自动对焦功能,这意味着对话框将焦点传递给日期选择器输入元素,从而将日期选择器重置为开始日期。这基本上使我在日期选择器上所做的任何操作无效。
我已通过手动覆盖 javascript 代码中的自动对焦功能并在对话框获得焦点时强制它不执行任何操作来解决此问题。由于我在我的应用程序中对这个自动对焦事件没有做任何事情,所以这对我来说没有任何影响
$.ui.dialog.prototype._focusTabbable = $.noop;
我也用我的解决方案更新了我的 jsFiddle:https://jsfiddle.net/jeroendemuyt/w6prze3t/110/
我希望这个解决方案可以减轻其他人的压力:)