2

オペラのJqueryUIダイアログで奇妙な問題が発生しています。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

Ok。だから私は問題がどこにあるかを理解しました:$(document).disableSelection();—これをコメントアウトすればすべてうまくいくでしょう。

jQuery UIダイアログは最初のタブ可能な要素を開くため、最初の入力がフォーカスさdisableSelectionれますが、ドキュメント全体が原因で、マウスでフィールドをフォーカスできません。

于 2012-10-24T12:33:00.637 に答える