jquery ui对话框取消了ajax请求

时间:2012-06-26 07:03:39

标签: javascript jquery jquery-ui

我试图通过表单提交发送多条信息。在这个提交我想返回false(取消页面请求,因为它是ajax)并关闭表单。不幸的是,近似似乎也会回归,我认为是真的。 这样邮寄请求不会失败。这使对话框仍然在屏幕上。 如果我调用$(“#dialog-form”)。dialog(“close”);然后返回false不运行并且页面发生变化。

如果有人知道如何解决这个问题,或者如果我做错了,那将非常有帮助:

的javascript:

$('#modifyConsoleForm').submit(function(evt) {
    $.ajax({
        type : 'POST',
        url : jQuery("#modifyConsoleForm").attr("action"),
        data : jQuery(this).serialize(),
        dataType : "json",
        success : function(data) {
            hideError();
        },
        error : function(data) {
            setError('modify of console failed');
        }
    });
    $("#dialog-form").dialog("close");
    return false;
});

和我的对话框初始化:

$("#dialog-form").dialog({
    autoOpen : false,
    height : 300,
    width : 350,
    modal : true,

    close : function() {
        allFields.val("").removeClass("ui-state-error");
    }
});

我也试过在关闭对话框中总是返回false,但它似乎没有用。 我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

尝试使用event.preventDefault()来停止更改页面

例如:

$('#modifyConsoleForm').submit(function(evt) {

    evt.preventDefault();

    $.ajax({
        type : 'POST',
        url : jQuery("#modifyConsoleForm").attr("action"),
        data : jQuery(this).serialize(),
        dataType : "json",
        success : function(data) {
            hideError();
        },
        error : function(data) {
            setError('modify of console failed');
        }
    });
    $("#dialog-form").dialog("close");
    return false;
});

答案 1 :(得分:0)

关闭对话框并在ajax请求完成后,在成功和错误函数中返回true / false。

在运行ajax请求时放置一个活动指示器并在收到服务器响应后隐藏/删除它也是明智的,这样用户就知道正在进行一个进程。