0

モーダル内のフォーム内にあるボタンでjqueryモーダルダイアログを閉じたい...

$("#btnCancel").button().on('click', function (event) {
    event.preventDefault();
    $("#modalDlgWindow").dialog("close");
});

function loadDialog(tag, event, target) {
    event.preventDefault();
    event.stopPropagation();
    var $loading = $('<img src="../../Content/assets/images/nivo-loader.gif" alt="loading" class="ui-loading-icon">');
    var $url = $(tag).attr('href');
    var $title = $(tag).attr('title');
    $("#modalDlgWindow").empty();
    $("#modalDlgWindow")
        .append($loading)
        .load($url)
        .dialog({
            autoOpen: false
            , resizable: false
            , autoResize: true
            , title: $title
            , width: 'auto'
            , modal: false
            , height: 'auto'
            , show: 'fade'
            , position: [10, 50]
            , hide: 'fade'
        });
    $("#modalDlgWindow").dialog('open');
};

それはとで動作するので、私はそれも動作する.fadeOut(500).empty()思いました.dialog('close')が、そうではありません。誰かが私の問題の解決策を持っていますか?

4

1 に答える 1

1

ここを参照してください:ダイアログ内でjQueryダイアログを閉じる方法は?

試す:

 $("#modalDlgWindow").closest('.ui-dialog-content').dialog('close'); 

または、次のようにキャンセル(および送信)ボタンを追加することもできます。

function loadDialog(tag, event, target) {
    event.preventDefault();
    event.stopPropagation();
    var $loading = $('<img src="../../Content/assets/images/nivo-loader.gif" alt="loading" class="ui-loading-icon">');
    var $url = $(tag).attr('href');
    var $title = $(tag).attr('title');
    $("#modalDlgWindow").empty();
    $("#modalDlgWindow")
        .append($loading)
        .load($url)
        .dialog({
            autoOpen: false
            , resizable: false
            , autoResize: true
            , title: $title
            , width: 'auto'
            , modal: false
            , height: 'auto'
            , show: 'fade'
            , position: [10, 50]
            , hide: 'fade'
        });

        $("#modalDlgWindow").dialog("option", "buttons", {
                "Submit": function () {
                       // Get form values here

                       $.ajax({
                              type: 'POST',
                              //post form information here,
                              success: function (msg) {
                              if (msg.d) {
                                 $(this).dialog("close");                                    
                                }
                              },
                              error: function () {
                                 alert("Error! Try again...");
                              }
                       });
                    },
              "Cancel": function () {
                     $(this).dialog("close");
               }
            );
    $("#modalDlgWindow").dialog('open');
};
于 2012-11-19T22:46:17.720 に答える