效果图

调用示意图 
 

交互示意图


如上图所示,这基本是JQueryDialog的完整逻辑流程了。
1、用户点击模态窗口的“提交”按钮时,调用JQueryDialog.Ok()函数,这个函数对应了用户提交事件。

2、用OO的概念来说,JQueryDialog.Ok()其实是一个虚函数,它的逻辑封装在子窗口ContentWindow.Ok()中,这一点我借鉴了FCKEditor,如下代码所示:
JS代码

复制代码 代码如下:
var JQueryDialog = {
/// <summary>提交</summary>
/// <remark></remark>
Ok:function(){
var frm = $("#jd_iframe");
if (frm[0].contentWindow.Ok()){
JqueryDialog.Close() ;
}
else{
frm[0].focus() ;
}
}
};

所以Iframe到Dialog的每个子页面必须定义函数Ok,以供父窗口调用,并返回true或false来通知父窗口Dialog是否关闭。
3、 通常在ContentWindow中会包含服务端的处理逻辑,这就需要通过POST与服务端交互,因为ContentWindow本身不包含"提交"按钮,所以如果要POST就必需在ContentWindow.Ok()中自己写submit()了。
4、最后,服务端逻辑执行完成,控制权需交回Dialog。于是我封装了JQueryDialog.SubmitCompleted(),其中包含三个参数供Dialog进行最后的逻辑处理:是否弹出消息以及消息内容,是否关闭Dialog,是否刷新父窗口。这个函数也得益于FCKEditor,如下所示:

JS代码
复制代码 代码如下:
var JQueryDialog = {
/// <summary>提交完成</summary>
/// <param name="alertMsg">弹出提示内容,值为空不弹出</param>
/// <param name="isCloseDialog">是否关闭对话框</param>
/// <param name="isRefreshPage">是否刷新页面(关闭对话框为true时有效)</param>
SubmitCompleted:function(alertMsg, isCloseDialog, isRefreshPage){
if($.trim(alertMsg).length > 0 ){
alert(alertMsg);
}
if(isCloseDialog){
JqueryDialog.Close();
if(isRefreshPage){
window.location.href = window.location.href;
}
}
}
};

5、结果响应,对用户呈现。

详细出处参考:http://www.jb51.net/article/21999.htm

DEMO http://demo.jb51.net/js/jquery_dialog/default.html
点击下载
详细出处参考:http://www.jb51.net/article/21999.htm

最新文章

  1. 如何解决子元素设了margin-top之后父元素所受的影响
  2. D3的参考样例
  3. Django Web补充
  4. AngularJS指令的详解
  5. 【转载】芯片级拆解51、AVR、MSP430、凌阳61、PIC,5种单片机,多张显微照片
  6. IOS UILabel 根据内容自适应高度
  7. HTML列表-框架
  8. adId、idfv
  9. PostgreSQL的存储系统二:REDOLOG文件存储结构二
  10. MVC模型部分验证
  11. java设计模式之十桥接模式(Bridge)
  12. app外包开发注意事项大全『最新』
  13. linux压缩及vi操作
  14. C#工具:汉字转拼音帮助类
  15. React系列文章:JSX生成真实DOM结点
  16. Leetcode 1003. 检查替换后的词是否有效
  17. SQL Server 2016/2014/2012/2008/2005/2000简体中文企业版下载地址
  18. pymongo的几个操作
  19. AJAX.basic
  20. 花瓶使用笔记 (抓数据时,记得添加host,不然抓不了包的)

热门文章

  1. ubuntu server 14.04 vncserver with gnome
  2. zookeeper 集群 Cannot open channel to X at election address Error contacting service. It is probably not running.
  3. Python入门基础教程(儿童版) [分享一本入门级教程]
  4. android scrollview组件禁止滑动的方法
  5. 赵雅智_ListView_BaseAdapter
  6. 3DS MAX 导出FBX到Unity3D设置
  7. [Angular 2] Pipes with Multiple Parameters
  8. CSS控制LI行字符溢出用省略号取代
  9. linux 下 apt命令集详解
  10. C++ XML 解释库