繁体   English   中英

jQuery UI对话框未在Ajax成功中关闭

[英]Jquery UI Dialog not closing within ajax sucess

我试图从对话框按钮的提交发送ajax调用,而ajax成功后,我需要关闭另一个对话框的对话框,下面有一个对话框代码

$("#Forgot-password").dialog({
    autoOpen: false,
    heigth: 50,
    width: 320,
    modal: true,
    buttons: {
        "Submit": function () {
            var bValid = true;
            allFields.removeClass("ui-state-error");

            bValid = bValid && checkLength(forgotUsername, "username", 3, 16)
            if (bValid) {
                $(".validateTips").text("Wait....");
                $.ajax({
                    type: "POST",
                    url: url,
                    async:true,
                    data: { "REQUESTTYPE": 1, "USERNAME": forgotUsername.val() },
                    dataType: "json",
                    success: function(result) {
                        $(".validateTips").text("All form fields are required.");
                        $(this).dialog("close");
                        $("#dialog-forgot-message").dialog("open");
                    },

                }); 

            }
        },
        "Cancel": function () {
            $(this).dialog("close");
            $(".validateTips").text("All form fields are required.");
        }
    },
    close: function () {
        allFields.val("").removeClass("ui-state-error");
        $(".validateTips").text("All form fields are required.");
    }
});

因此,成功代码无法正常工作,任何人都可以帮助我,这里我错了

success: function(result) {
    $(".validateTips").text("All form fields are required.");
    $("#Forgot-password").dialog("close");
    ^^^^^use dialog box id here 
    $("#dialog-forgot-message").dialog("open");
},

原因是在ajax中,它无法获得$(this)的引用,因此由Id如此接近

将错误处理程序添加到您的Ajax代码中,并记录错误以查看出了什么问题。

$.ajax({
    type: "POST",
    url: url,
    async:true,
    data: { "REQUESTTYPE": 1, "USERNAME": forgotUsername.val() },
    dataType: "json",
    success: function(result) {
        $(".validateTips").text("All form fields are required.");
        $(this).dialog("close");
        $("#dialog-forgot-message").dialog("open");
    },
    error: function(result) {
        console.log(result);
    }
 }); 

它将记录一个对象,如果展开它,则应该能够找到错误消息。 通常这是您的PHP代码中的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM