Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax请求的jqueryui对话框取消_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript ajax请求的jqueryui对话框取消

Javascript ajax请求的jqueryui对话框取消,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我试图通过表单提交发送多条信息。在这次提交中,我想返回错误的取消页面请求,因为它是ajax,并关闭表单。不幸的是,接近似乎也有回报,我认为是真的。 这样post请求就不会失败。这使对话框仍在屏幕上。 如果我调用$dialog-form.dialogclose;然后return false不会运行,页面也会更改 如果有人知道如何解决这个问题,或者我做错了什么,这将非常有帮助: javascript: $('#modifyConsoleForm').submit(function(evt) {

我试图通过表单提交发送多条信息。在这次提交中,我想返回错误的取消页面请求,因为它是ajax,并关闭表单。不幸的是,接近似乎也有回报,我认为是真的。 这样post请求就不会失败。这使对话框仍在屏幕上。 如果我调用$dialog-form.dialogclose;然后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,但它似乎不起作用。
我遗漏了什么吗?

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

例如:


关闭对话框并返回true/false应该在ajax请求完成后在success和error函数中完成

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

$('#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;
});