js实现操作等待功能,防止重复提交,界面友好,底部为灰色遮罩层,防止用户重复操作。

  先看效果图:

   

  接着看js代码:

 //关闭等待窗口
function closeWaiting() {
var bgDiv = document.getElementById("bgDiv");
var msgDiv = document.getElementById("msgDiv");
//移除背景遮罩层div
if(bgDiv != null){
document.body.removeChild(bgDiv);
}
//移除中间信息提示层div
if(msgDiv != null){
document.body.removeChild(msgDiv);
}
}
//显示等待窗口
function showWaiting() {
var msgw, msgh, bordercolor;
msgw = 300; //提示窗口的宽度
msgh = 100; //提示窗口的高度
bordercolor = "#336699"; //提示窗口的边框颜色
titlecolor = "#99CCFF"; //提示窗口的标题颜色 var sWidth, sHeight;
sWidth = document.body.clientWidth;
sHeight = document.body.clientHeight; //背景遮罩层div
var bgObj = document.createElement("div");
bgObj.setAttribute('id', 'bgDiv');
bgObj.style.position = "absolute";
bgObj.style.top = "0px";
bgObj.style.background = "#888";
bgObj.style.filter = "progid:DXImageTransform
.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75";
bgObj.style.opacity = "0.6";
bgObj.style.left = "0px";
bgObj.style.width = sWidth + "px";
bgObj.style.height = sHeight + "px";
document.body.appendChild(bgObj); //信息提示层div
var msgObj = document.createElement("div");
msgObj.setAttribute("id", "msgDiv");
msgObj.setAttribute("align", "center");
msgObj.style.position = "absolute";
msgObj.style.background = "white";
msgObj.style.font = "12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
msgObj.style.border = "1px solid " + bordercolor;
msgObj.style.width = msgw + "px";
msgObj.style.height = msgh + "px";
msgObj.style.top = (document.documentElement.scrollTop + (sHeight - msgh) / 2) + "px";
msgObj.style.left = (sWidth - msgw) / 2 + "px";
document.body.appendChild(msgObj); //标题栏
var title = document.createElement("h4");
title.setAttribute("id", "msgTitle");
title.setAttribute("align", "left");
title.style.margin = "0px";
title.style.padding = "3px";
title.style.background = bordercolor;
title.style.filter = "progid:DXImageTransform.Microsoft
.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);";
title.style.opacity = "0.75";
title.style.border = "1px solid " + bordercolor;
title.style.height = "14px";
title.style.font = "12px Verdana, Geneva, Arial, Helvetica, sans-serif";
title.style.color = "white";
title.innerHTML = "正在加载中,请稍候......";
document.getElementById("msgDiv").appendChild(title); //中间等待图标
var img = document.createElement("img");
img.style.margin = "10px 0px 10px 0px";
img.style.width = "48px";
img.style.height = "48px";
img.setAttribute("src", "../images/waiting.gif");
document.getElementById("msgDiv").appendChild(img);
}

  点击操作按钮时的js方法如下:

 function submitForm(flag){
switch(flag){
case 1:
//等待提示
showWaiting();
break;
//do something else
}
document.forms[0].submit();
}

  操作成功,跳转到正确页面后需要关闭等待提示,在结果页面调用closeWaiting();方法即可:

 $(document).ready(parent.closeWaiting());

  这是jQuery的写法,记得引入jQuery包。

  至此所有功能完成,很简单的操作。

  中间等待提示图片留这里吧

   

最新文章

  1. react+redux教程(六)redux服务端渲染流程
  2. 关于jquery中用函数来设置css样式
  3. System.Data.SqlClient.SqlError:无法对过程'XXX' 执行 删除,因为它正用于复制。消息 3724,级别 16
  4. Retina CS强大漏洞检测工具
  5. java 编译带包文件
  6. AFN的坑--NSCachedURLResponse缓存
  7. linux 通过pid寻找程序路径的最简单命令
  8. 获取屏幕宽高度与可视区域宽高度(availWidth、clientWidth、width、innerWidth)
  9. ERROR 1698 (28000): Access denied for user 'root'@'localhost'
  10. javaEE十三种核心技术
  11. Share Today
  12. [POJ3197]Stall Reservations (贪心)
  13. Java Map 键值对排序 按key排序和按Value排序
  14. Latex基本用法
  15. IIS下众多网站,如何快速定位某站点日志在哪个文件夹?
  16. 关于typedef在struct使用上的一些问题
  17. input type=file文件选择表单元素二三事
  18. Mysql中count(*),DISTINCT的使用方法和效率研究
  19. [agc004f]Namori 贪心
  20. 生产者与消费者模式-阻塞 wait,notify

热门文章

  1. BZOJ 3675 APIO2014 序列切割 斜率优化DP
  2. NYOJ 927 The partial sum problem 【DFS】+【剪枝】
  3. RK3066 实现LED闪烁的代码分析
  4. 32.Node.js中的常用工具类util
  5. Atcoder AtCoder Regular Contest 079 E - Decrease (Judge ver.)
  6. Direct2D开发:向 MFC 项目添加 Direct2D 对象
  7. CODEVS——T1332 上白泽慧音 || 洛谷——P1726 上白泽慧音
  8. 洛谷 P1598 垂直柱状图
  9. [Javascript AST] 0. Introduction: Write a simple BabelJS plugin
  10. 编译安装PHP-7.2.8