Redactor - 输入元素"插入链接"对话框无法获得焦点

时间:2014-10-22 03:18:11

标签: jquery-ui jquery-ui-dialog redactor redactor.js

我正在尝试做与this page正在做的事情类似的事情。

唯一的区别是我使用的jQuery UI对话框是模态的。

我尝试在页面中编辑脚本以使jQuery UI对话框模态化。

$("#dialog-modal").dialog(
{
    modal: true, // added this line to make dialog modal
    width: 600,
    height: 400,
    open: function(event, ui)
    {
        var textarea = $('<textarea style="height: 276px;">');
        $(textarea).redactor({
            focus: true,
            maxHeight: 300,
            initCallback: function()
            {
                this.code.set('<p>Lorem...</p>');
            }
        });
    }
 });

然后我点击插入链接按钮(工具栏右侧的第3个按钮)。这显示了另一个带有表单的jQuery UI模式对话框。

我注意到我无法获得文本字段的焦点。我无法在其中输入任何内容。

如果我没有制作第一个模式对话框,代码就可以正常工作。

知道如何规避这个吗?

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的问题。此行为是jQuery UI处理文档上的focusin.dialog事件,并将焦点放回堆栈中的最后一个jQuery UI对话框(使用选择器".ui-dialog:visible:last")的结果。我在创建模态对话框后立即调用此代码解决了这个问题:

setTimeout(function() {
    $(document).unbind("focusin.dialog");
}, 100);

我使用setTimeout,因为jQuery UI也使用setTimeout来绑定此事件。由于这个答案,我能够解决它:jQuery UI Focus Stealing。我也尝试升级到jQuery UI 1.11.4,但这并没有解决问题。