我有一个页面,上面有一些按钮,是用于提交的。由于提交后台后,计算量比较大,所以要等一会儿页面才能刷新。但是这个时候如果有些用户没有耐心的话,可能会点很多次按钮;或者用户认为是网页没有响应了,就去乱点其他按钮。这样话,其实系统都接受了这些提交,导致最后结果是不正确的。
有什么方法可以避免用户不那样做呢?比如弹出一个框说现在系统正则运行,让用户等待,然后运行完毕了关闭那个框,刷新页面谢谢

解决方案 »

  1.   

    AJAX,在用户点击了提交按钮时,则可以将提交按钮禁用或弹出框,待服务器将数据重新返回时,则重新刷新页面
      

  2.   

    老话题了,用div设置透明扑满页面
      

  3.   

     function sAlert(str){ 
       var msgw,msgh,bordercolor; 
       msgw=400;
       msgh=100;
       titleheight=25 
       bordercolor="#123456";
       titlecolor="#789101";
        
       var sWidth,sHeight; 
       sWidth=document.body.offsetWidth; 
       sHeight=screen.height; 
       var bgObj=document.createElement("div"); 
       bgObj.setAttribute('id','bgDiv'); 
       bgObj.style.position="absolute"; 
       bgObj.style.top="0"; 
       bgObj.style.background="#777"; 
       bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"; 
       bgObj.style.opacity="0.6"; 
       bgObj.style.left="0"; 
       bgObj.style.width=sWidth + "px"; 
       bgObj.style.height=sHeight + "px"; 
       bgObj.style.zIndex = "10000"; 
       document.body.appendChild(bgObj); 
        
       var msgObj=document.createElement("div") 
       msgObj.setAttribute("id","msgDiv"); 
       msgObj.setAttribute("align","center"); 
       msgObj.style.background="white"; 
       msgObj.style.border="1px solid " + bordercolor; 
       msgObj.style.position = "absolute"; 
       msgObj.style.left = "50%"; 
       msgObj.style.top = "50%"; 
    msgObj.style.font="12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif"; 
    msgObj.style.marginLeft = "-225px" ; 
    msgObj.style.marginTop = -75+document.documentElement.scrollTop+"px"; 
    msgObj.style.width = msgw + "px"; 
    msgObj.style.height =msgh + "px"; 
    msgObj.style.textAlign = "center"; 
    msgObj.style.lineHeight ="25px"; 
    msgObj.style.zIndex = "10001"; 
        
         var title=document.createElement("h4"); 
         title.setAttribute("id","msgTitle"); 
         title.setAttribute("align","right"); 
         title.style.margin="0"; 
         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="18px"; 
         title.style.font="12px Verdana, Geneva, Arial, Helvetica, sans-serif"; 
         title.style.color="white"; 
         title.style.cursor="pointer"; 
         document.body.appendChild(msgObj); 
         document.getElementById("msgDiv").appendChild(title); 
         var txt=document.createElement("p"); 
         txt.style.margin="1em 0" 
         txt.setAttribute("id","msgTxt"); 
         txt.innerHTML=str; 
         document.getElementById("msgDiv").appendChild(txt); 
                }