【问题标题】:Open dialog on ajax success call打开 ajax 成功调用对话框
【发布时间】:2013-06-21 01:48:35
【问题描述】:

我正在努力寻找在成功的 ajax 事件后打开对话框窗口的方法。目前,我正在使用 jquery .html 将一些 html 插入到 div 中,但我想做的是用 html 创建一个对话框窗口,而不是使用名为 div 的标准。这样做的原因是因为值会发生变化,因此标准响应不会起作用。这可能吗?

我的示例代码中的 div; #dialog-message 只是一个例子。谢谢

jquery+对话框代码

    //Begin function to submit report form

$(function () {
    $("#frmreport").submit(function () {

        var send = $(this).serialize();

        $.ajax({
            type: "POST",
            url: "/sample/admin/frm10010.php",
            data: send,
            dataType: "json",
            success: function (msg) {
                $("#confirm_department").hide();
                $(function () {
                    $("#dialog-message").dialog({
                        modal: true,
                        buttons: {
                            Ok: function () {
                                $(this).dialog("close");
                            }
                        }
                    });
                });
                //alert('You have succesfully submitted your ' 
                //   + msg.dept + ' report. Thank you.');
                //$("#report_result").html("You have succesfully 
                //   submitted your report. Thank you."+"<br /><br />");
                $("#formShow").hide();
                $("#formImage .col_1 li").show();
                $("#frmreport").get(0).reset();
            }
        });
        return false;
    });
});

// End function to submit report form

【问题讨论】:

  • 删除 $(function() {...}) 周围的 dialog 初始化 :)
  • 是的,只需将"#dialog-message" 替换为代表div 的html 字符串即可。
  • @passionateCoder 完成。非常感谢
  • @Kevin B 我做了这样的事情: var $dialog = $('
    ') .html('这是一个示例对话框!'+msg .dept)

标签: jquery jquery-ui-dialog


【解决方案1】:

无需将对话框初始化包装在$(function() {...}); 函数中。这会将ready 事件侦听器附加到文档,因此不需要,因为您已经包装了所有内容:http://api.jquery.com/jQuery/#jQuery3

尝试将您的 success 回调替换为:

function (msg) {
    $("#confirm_department").hide();
    $("#dialog-message").dialog({
        modal: true,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
            }
        }
    });
    //alert('You have succesfully submitted your ' + msg.dept + ' report. Thank you.');
    //$("#report_result").html("You have succesfully submitted your report. Thank you."+"<br /><br />");
    $("#formShow").hide();
    $("#formImage .col_1 li").show();
    $("#frmreport").get(0).reset();
}

另外,dialog()jQueryUI 的一部分,而不是基本的 jQuery 库。您需要导入这两个库才能使其正常工作。

【讨论】:

  • 感谢您的意见。但是我希望删除#dialog-message 并改用.html。
猜你喜欢
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 2014-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多