dijit对话框中的Select2控件 - 无法对焦

时间:2014-10-09 19:34:34

标签: dojo xpages jquery-select2

从Domino 9.01FP2开始,您无法再关注xe:对话框中的Select2控件。 它似乎是由于在FP2之前工作的dojo版本的变化引起的。

我理解根本原因是dijit对话框的布局管理器(或底层)阻止了对模态之外的事情的关注,并且select2下拉列表附加在页面的末尾。

当使用jquery模式,例如

时,已经记录了这方面的修复

$。fn.modal.Constructor.prototype.enforceFocus = function(){};

但是我找不到dojo的任何等效修复,即将select2下拉列表注册为允许聚焦的内容。

注意:我认为dojo中的'修复'可能导致了这个问题 https://bugs.dojotoolkit.org/ticket/15370

我想到的一个潜在的解决方案是使用select2的open事件将其移动到对话框中但我没有运气。

是否有人使用带有dojo的select2或者只是一个奇怪的用例,因为大多数人都会使用jquery? (在xpages之外)

谢谢!

2 个答案:

答案 0 :(得分:4)

经过很长一段时间调试Dojo后,我设法让它运行起来 作为一个软糖,你可以将它放入你的xe:对话框代码

<xe:this.onShow><![CDATA[//fudge to make select2 work
dijit.byId('#{id:myDialog}')._fadeOutDeferred = true; ]]></xe:this.onShow>

在以下情况下,Dojo允许节点获得焦点:

  1. 他们是对话的孩子
  2. 他们有一类digitPopup
  3. _fadeOutDeferred属性设置为true
  4. 除了可以点击弹出窗口之外的任何内容,但是至少select2控件再次起作用之外,这会使对话无模式效果:)

答案 1 :(得分:0)

尝试设置属性&#39;自动对焦&#39;该对话框为false。