今天在用DWZ框架作添加功能时,发如今对话框保存成功后,后端返回正确的json格式,但对话框不能自动关闭窗口,并且保存后自动跳回主页,没有停留在当前用户列表页面,具体错误过程重现以下:javascript
1.打开用户列表java
2.点击添加按钮ajax
3.在打开的添加对话窗口填入信息后,点击保存json
4.添加成功后,对话框并无自动关闭,并且用户列表也不见了后端
5.从新打开用户礼拜哦,能够看到刚才的数据已经成功保存服务器
6.后端返回的json格式也没有问题session
/** * navTabAjaxDone是DWZ框架中预约义的表单提交回调函数. * 服务器转回navTabId能够把那个navTab标记为reloadFlag=1, 下次切换到那个navTab时会从新载入内容. * callbackType若是是closeCurrent就会关闭当前tab * 只有callbackType="forward"时须要forwardUrl值 * navTabAjaxDone这个回调函数基本能够通用了,若是还有特殊须要也能够自定义回调函数. * 若是表单提交只提示操做是否成功, 就能够不指定回调函数. 框架会默认调用DWZ.ajaxDone() * <form action="/user.do?method=save" onsubmit="return validateCallback(this, navTabAjaxDone)"> * * form提交后返回json数据结构statusCode=DWZ.statusCode.ok表示操做成功, 作页面跳转等操做. statusCode=DWZ.statusCode.error表示操做失败, 提示错误缘由. * statusCode=DWZ.statusCode.timeout表示session超时,下次点击时跳转到DWZ.loginUrl * {"statusCode":"200", "message":"操做成功", "navTabId":"navNewsLi", "forwardUrl":"", "callbackType":"closeCurrent", "rel"."xxxId"} * {"statusCode":"300", "message":"操做失败"} * {"statusCode":"301", "message":"会话超时"} * */ function navTabAjaxDone(json){ DWZ.ajaxDone(json); if (json[DWZ.keys.statusCode] == DWZ.statusCode.ok){ if (json.navTabId){ //把指定navTab页面标记为须要“从新载入”。注意navTabId不能是当前navTab页面的 navTab.reloadFlag(json.navTabId); } else { //从新载入当前navTab页面 var $pagerForm = $("#pagerForm", navTab.getCurrentPanel()); var args = $pagerForm.size()>0 ? $pagerForm.serializeArray() : {} navTabPageBreak(args, json.rel); } if ("closeCurrent" == json.callbackType) { setTimeout(function(){navTab.closeCurrentTab(json.navTabId);}, 100); } else if ("forward" == json.callbackType) { navTab.reload(json.forwardUrl); } else if ("forwardConfirm" == json.callbackType) { alertMsg.confirm(json.confirmMsg || DWZ.msg("forwardConfirmMsg"), { okCall: function(){ navTab.reload(json.forwardUrl); }, cancelCall: function(){ navTab.closeCurrentTab(json.navTabId); } }); } else { navTab.getCurrentPanel().find(":input[initValue]").each(function(){ var initVal = $(this).attr("initValue"); $(this).val(initVal); }); } } } /** * dialog上的表单提交回调函数 * 当前navTab页面有pagerForm就从新加载 * 服务器转回navTabId,能够从新载入指定的navTab. statusCode=DWZ.statusCode.ok表示操做成功, 自动关闭当前dialog * * form提交后返回json数据结构,json格式和navTabAjaxDone一致 */ function dialogAjaxDone(json){ DWZ.ajaxDone(json); if (json[DWZ.keys.statusCode] == DWZ.statusCode.ok){ if (json.navTabId){ navTab.reload(json.forwardUrl, {navTabId: json.navTabId}); } else { var $pagerForm = $("#pagerForm", navTab.getCurrentPanel()); var args = $pagerForm.size()>0 ? $pagerForm.serializeArray() : {} navTabPageBreak(args, json.rel); } if ("closeCurrent" == json.callbackType) { $.pdialog.closeCurrent(); } } }