0

我试图通过表单提交发送多条信息。在此提交中,我想返回 false(取消页面请求,因为它是 ajax)并关闭表单。不幸的是,关闭似乎也确实返回了,我认为是真的。这样发布请求就不会失败。这使对话框仍然在屏幕上。如果我打电话给 $("#dialog-form").dialog("close"); 然后 return 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,但它似乎没有用。我错过了什么吗?

4

2 回答 2

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;
});
于 2012-06-26T07:07:59.913 回答
0

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

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

于 2012-06-26T07:08:49.147 回答