2

我在歌剧中的 Jquery UI 对话框有一个奇怪的问题。在所有其他浏览器中,代码都可以正常工作,包括 IE 8,但在 Opera 中出于某种原因,我必须使用选项卡按钮在对话框中选择一个字段。我无法使用鼠标选择字段!

更新:我的 Firefox 也有这个问题!所以这不仅仅是歌剧。它在 Chrome 和 IE 中绝对可以正常工作。我无法选择任何输入字段。有人知道我怎样才能正常关注我的 html 元素吗?

//Build the dialog
    function createActivityDialog() {
        var dropdown, activitydialog, timepicker, i, stageid;

        timepicker = "<select name='dialogbegintime' id='dialogbegintime'>";
        for ( i = 0; i < $("#times li").length; i = i + 1) {
            timepicker += "<option value='time" + i + "'>" + hourArray[i] + ":00" + "</option>";
        }
        timepicker += "</select>";

        dropdown = "<select name='podia' id='podia'>";
        for ( i = 0; i < $(".tr").length; i = i + 1) {
            stageid = $(".tr").eq(i).attr("id");
            dropdown += "<option value='" + stageid + "'>" + $(".th").eq(i).html() + "</option>";
        }
        dropdown += "</select>";

        activitydialog = $('<div></div>').html("<p id='dialogTip'>Voer hier een nieuwe activiteit in:</p><br />" + "Naam: <input type='text' name='activityName' id='activityName' /><br />" + "Selecteer een begintijd:" + timepicker + "<br />Selecteer het podium: " + dropdown).dialog({
            autoOpen : false,
            title : 'Activiteit Toevoegen',
            height : 300,
            width : 350,
            modal : true,
            close : function() {
                $(this).remove();
            }
        });
        return activitydialog;
    }

//Call/Open the dialog

$("#SomeForm").submit(function(event) {
    var mydialog;
    mydialog = createActivityDialog();
    mydialog.dialog('open');
    mydialog.dialog("option", "buttons", [{
        text : "Ok",
        click : ActivityDialogOk
    }, {
        text : "Cancel",
        click : function() {
            $(this).dialog("close");
        }
    }]);
    event.preventDefault();
});

HTML:

<form id="SomeForm" method="post">
    <button type="submit" name="addActivity">
        Add
    </button>
</form>
4

1 回答 1

1

好的。所以我想出了问题出在哪里:$(document).disableSelection();- 把它注释掉,一切都会好起来的。

jQuery UI 对话框打开第一个可选项卡元素,因此第一个输入被聚焦,但由于disableSelection整个文档导致您无法用鼠标聚焦字段。

于 2012-10-24T12:33:00.637 回答