我认为我有这个代码。
我的数据库添加后,消息显示完美,但我的网格没有显示更新的结果。如果我保持
return true;
当我单击“提交”按钮时,我立即进入弹出窗口然后添加到数据库中?这显示了我在网格中的更新结果。
答案 0 :(得分:1)
AJAX请求是异步的,因此它在回调完成之前完成表单提交例程,这可能会解释您获得的结果。我认为可以关闭异步设置,以便首先完成操作/回调。
答案 1 :(得分:1)
基于您的代码,据我所知,您无法加载新数据。
当您return true;
加载新数据时,原因是submit
事件成功执行了它的默认操作,即提交给服务器并刷新页面。
另一方面,return false;
会阻止此操作(包括刷新页面),而只是运行XHR。
你能做的是:
作为结果返回新数据 XHR并相应地解析它。
答案 2 :(得分:1)
如果在提交函数结束时返回true,则浏览器将转到表单action属性中的url。我认为如果你在ajax调用中处理了表单数据,你应该总是返回false。您需要将更新的网格作为ajax成功方法的一部分。
你不能拥有ajax弹出窗口,仍然让表单以正常方式提交。
$(function () {
$('#form4').submit(function () {
...
$.ajax({
...
success: function (result) {
...
// update grid
grid_container = $("#grid").html('');
$("<table>").appendTo(grid_container);
for (ii = 0; ii < result.grid.length; ++ii) {
tr = $("<tr>").appendTo(table);
for (jj=0; jj < result.grid[ii].length; ++ii) {
td = $("<td>").text(result.grid[ii][jj]).appendTo(tr);
}
}
// show success message
alert('Saved NewServiceTypeCategory Successfully. Thank you!');
}
});
return false;
});
});
现在,您所要做的就是让服务器端邮件处理程序返回带有网格数据的XML。