Jquery UI Dialog未在ajax成功中关闭

时间:2013-11-15 08:27:43

标签: javascript jquery ajax

我试图通过提交对话框按钮发送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.");
    }
});

所以,成功代码不起作用,任何人都可以帮助我,我在这里错了

2 个答案:

答案 0 :(得分:0)

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它无法通过 Id

获得$(this)的引用

答案 1 :(得分:0)

向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代码中的错误。