1

ASP.NET MVC ビューで動作する JQueryUI (1.8.23) ダイアログを取得しようとしています。ダイアログを「autoOpen: false」に指定し、ダイアログのいくつかのボタンも指定しました。

最初の問題は、ダイアログが "autoOpen: false" 宣言を尊重していないようで、ページが読み込まれると常に開くことです。2 つ目の問題は、指定したボタンが表示されないことです。ページ上のリンクからダイアログを開くとき、またはページの読み込み時にダイアログが開くときのいずれかです。

ダイアログを設定する私のJavascriptは次のとおりです。

        $(function() {
        var actionUrl = "";

        var passReason = $("#passReason"),
        allFields = $([]).add(passReason);

        $("#pass-dialog").dialog({
            autoOpen: false,
            height: 100,
            width: 300,
            modal: true,
            buttons: {
                "Pass": function() {
                    actionUrl = actionUrl.replace('COMMENT', escape(passReason.combobox('getValue')));
                    document.location = actionUrl;
                    $(this).dialog("close");
                },
                "Cancel": function() {
                    $(this).dialog("close");
                }
            },
            close: function() {
                $(this).dialog("close");
            }
        });


        $(function() {
            $("#passReason").combobox({
                url: '<%= Url.Action("GetOverrideReasonCodes", "Statistics") %>',
                valueField: 'code',
                textField: 'description',
                method: 'GET',
                mode: 'remote'
            });
        });
    });

    function getManagerComment(jobId, routeId, crisId) {
        actionUrl = '<%= Url.Action("ManualCompleteSegment", "Statistics", new RouteValueDictionary{{"jobId", "JOBID"}, {"routeId", "ROUTEID"}, {"crisId", "CRISID"}, {"comment", "COMMENT"} }) %>';
        actionUrl = actionUrl.replace('JOBID', jobId);
        actionUrl = actionUrl.replace('ROUTEID', routeId);
        actionUrl = actionUrl.replace('CRISID', crisId);

        $("#pass-dialog").dialog("open");
    }

    function getManagerRouteComment(jobId, routeId) {
        actionUrl = '<%= Url.Action("ManualCompleteRoute", "Statistics", new RouteValueDictionary{{"jobId", "JOBID"}, {"routeId", "ROUTEID"}, {"comment", "COMMENT"} }) %>';
        actionUrl = actionUrl.replace('JOBID', jobId);
        actionUrl = actionUrl.replace('ROUTEID', routeId);

        $("#pass-dialog").dialog("open");
    }

そして、私のダイアログの内容を表す は次のとおりです。

    <div id="pass-dialog" title="Enter Pass Reason">
    <form>
    <fieldset>
        <label for="passReason">Pass Reason: </label>
        <input id="passReason" name="passReason" class="easyui-combobox" />
    </fieldset>
    </form>
</div>

発行された HTML の下にあります。

助言がありますか?

ありがとう、マシュー

4

1 に答える 1

1

jQueryUI と「EasyUI」CSS ファイルの間に競合があることがわかりました。式から EasyUI を削除し、ドロップダウンをより手動で作成すると、すべてが期待どおりに機能しました。

于 2012-09-07T17:28:26.377 に答える