3

我正在使用 JQuery UI 对话框来验证警报消息,它工作正常。但我有一个焦点问题如下。

当我检查验证并关注复选框时,现在我弹出对话框警报,然后焦点出现在对话框弹出的“确定”上,它工作正常。

但是当我的焦点在文本框上并且现在我弹出对话框警报时,焦点不会出现在对话框弹出的“确定”上。

代码:

$("#dialog-message").dialog({
    modal: true,
    height: 160,
    width: 350,
    //closeOnEscape: false, 
    buttons: {
        Ok: function () {
            $(this).dialog("close");
            if (focusElement != null && focusElement != "") {
                document.getElementById(focusElement).focus();
            }
        }
    },
    open: function () {
    }});

所以当我警告对话框并且我的焦点在文本框上时,我想将焦点设置在 OK 上。

4

2 回答 2

1

为按钮添加 id 并在对话框打开时聚焦按钮:

$("#dialog-message").dialog({
    modal: true,
    height: 160,
    width: 350,
    //closeOnEscape: false, 
    buttons: [{
        id: "close-button",            // <-- set the id
        text: "OK",
        click: function() {
            $(this).dialog('close');
        }
    }],
    open: function() {
        $("#close-button").focus();    // <-- select the close button via the id
    }});

这对我行得通。

于 2014-10-13T11:18:01.397 回答
1

您可以尝试将焦点设置OK在加载按钮上

open: function () {
    $(this).parent().find('button:nth-child(1)').focus();
}

演示。

于 2013-08-14T10:35:01.170 回答