我试图通过表单提交发送多条信息。在这个提交我想返回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,但它似乎没有用。 我错过了什么吗?
答案 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请求时放置一个活动指示器并在收到服务器响应后隐藏/删除它也是明智的,这样用户就知道正在进行一个进程。