如何在弹出窗口中显示此成功消息

时间:2010-09-28 02:17:11

标签: javascript jquery asp.net-mvc

我认为我有这个代码。

我的数据库添加后,消息显示完美,但我的网格没有显示更新的结果。如果我保持

return true;

当我单击“提交”按钮时,我立即进入弹出窗口然后添加到数据库中?这显示了我在网格中的更新结果。

3 个答案:

答案 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。