Javascript 如何在弹出窗口中显示此成功消息
我有这个代码在我看来 在我的数据库添加后,消息显示得非常完美,但我的网格没有显示更新的结果。如果我坚持Javascript 如何在弹出窗口中显示此成功消息,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有这个代码在我看来 在我的数据库添加后,消息显示得非常完美,但我的网格没有显示更新的结果。如果我坚持 返回true 当我点击“提交”按钮时,会立即弹出窗口,然后添加到数据库中?这将在网格中显示我的更新结果。AJAX请求是异步的,因此它在回调完成之前完成表单提交例程,这可能解释了您得到的结果。我认为可能有一个异步设置可以关闭,这样操作/回调必须首先完成。根据您的代码,据我所知,您无法加载新数据 返回true时的原因加载新数据是因为submit事件成功执行其默认操作,即提交到服务器并刷新页面 另一
返回true代码>
当我点击“提交”按钮时,会立即弹出窗口,然后添加到数据库中?这将在网格中显示我的更新结果。AJAX请求是异步的,因此它在回调完成之前完成表单提交例程,这可能解释了您得到的结果。我认为可能有一个异步设置可以关闭,这样操作/回调必须首先完成。根据您的代码,据我所知,您无法加载新数据
返回true时的原因
加载新数据是因为submit
事件成功执行其默认操作,即提交到服务器并刷新页面
另一方面,返回false代码>阻止此操作(包括刷新页面),而只是运行XHR
你能做的是:
返回新数据作为测试的结果
并相应地对其进行解析
如果在提交函数的末尾返回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;
});
});
$(函数(){
$('#form4')。提交(函数(){
...
$.ajax({
...
成功:功能(结果){
...
//更新网格
网格容器=$(“#网格”).html(“”);
$(“”).appendTo(网格容器);
对于(ii=0;ii
现在,您需要做的就是让服务器端的post处理程序返回包含网格数据的XML。谢谢Brian,怎么做?你能告诉我吗?检查一下:第一个选项有一个async属性,设置为false。请在此阅读更多内容:请注意这可能会产生影响。您可能想考虑重构代码以通过回调传递真/假……请告诉我XHR是什么?