a 链接弹出框 后台抛出异常直接提示自定义信息 并关闭dialog
a 链接中的target属性 target="dialog" ,在使用a链接做弹出层业务的时候使用dialog属性值,弹出层之前业务中需要做一些可操作验证,
抛出自定义异常信息,新增target属性值 target="dialogMsg" ,在 dwz.ui.js 中扩展一个函数,当target的属性值使用dialogMsg的时候,
后台抛出的异常信息就会经过该函数进行处理,并弹出提示信息。
1.dwz.ui.js 扩展 dialogMsg
//dialogMsg 弹出框后台抛出自定义异常 $("a[target=dialogMsg]", $p).each(function(){ $(this).click(function(event){ var $this = $(this); .......
..............省略................
.......
DWZ.debug(url); if (!url.isFinishedTm()) { alertMsg.info($this.attr("warn") || DWZ.msg("alertSelectMsg")); return false; } //扩展openMsg $.pdialog.openMsg(url, rel, title, options); return false; }); });
2.dwz.dialog.js 扩展 openMsg
//打开一个可返回自定义异常信息的层 openMsg:function(url, dlgid, title, options) { var op = $.extend({},$.pdialog._op, options); var dialog = $("body").data(dlgid); //重复打开一个层 if(dialog) { if(dialog.is(":hidden")) { dialog.show(); } if(op.fresh || url != $(dialog).data("url")){ dialog.data("url",url); dialog.find(".dialogHeader").find("h1").html(title); this.switchDialog(dialog); var jDContent = dialog.find(".dialogContent"); jDContent.loadUrlMsg(url, dlgid,{}, function(){ jDContent.find("[layoutH]").layoutH(jDContent); $(".pageContent", dialog).width($(dialog).width()-14); $("button.close").click(function(){ $.pdialog.close(dialog); return false; }); }); } } else { //打开一个全新的层 .............//load data var jDContent = $(".dialogContent",dialog); jDContent.loadUrlMsg(url,dlgid,{}, function(){ jDContent.find("[layoutH]").layoutH(jDContent); $(".pageContent", dialog).width($(dialog).width()-14); $("button.close").click(function(){ $.pdialog.close(dialog); return false; }); }); } ...................... },
3.dwz.core.js 扩展 loadUrlMsg、 ajaxUrlMsg
loadUrlMsg: function(url,dlgid,data,callback){
//dlgid 是当前层标识rel的属性值 $(this).ajaxUrlMsg({url:url,dlgid:dlgid, data:data, callback:callback}); }, ajaxUrlMsg: function(op){ var $this = $(this); $this.trigger(DWZ.eventType.pageClear); $.ajax({ type: op.type || 'GET', url: op.url, data: op.data, cache: false, success: function(response){ ......... }, error: function(response){
//response.responseText 获取异常的文本信息 alertMsg.error(response.responseText, {okCall:function(){
//关闭当前弹出层 $.pdialog.close(op.dlgid); return false; }}) }, statusCode: { 503: function(xhr, ajaxOptions, thrownError) { alert(DWZ.msg("statusCode_503") || thrownError); } } }); },