1

我正在努力寻找一种在成功的 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
4

1 回答 1

0

无需将对话框初始化包装在$(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 库。您需要导入这两个库才能使其正常工作。

于 2013-06-20T17:46:39.160 回答