为什么我一点击下拉列表框的选择其中一个值(这些值是固定的值,不是从后台数据库取得的,而是在页面就写上的)之后,整个页面会刷新呢?而且会有明显的视觉效果,感觉是整个页面闪了一下,重新打开了!怎么样控制它不刷新整个页面呢?各位高手帮忙解答下啊,谢谢啦!

解决方案 »

  1.   

    下拉框有改写的onchange事件   值改变了  刷新页面
    把事件屏了就ok
      

  2.   

    我去试试下看啦!是不是onchange事件惹的祸?
      

  3.   

    肯定是在下拉框上写了方法,绑在某种事件(如onclick, onchange等)上了!
      

  4.   

    好吧,我把代码帖出来下,index3.jsp文件如下:
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>DashBoard</title>
    <link rel="stylesheet" type="text/css" href="styles/styles.css">
        <script type="text/javascript" src="scripts/script.js"></script>   
        <script type="text/javascript">
          
        </script>  </head>
      
      <body>
        <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
        <tr id="topTR">
        <td  colspan="2" align="center" class="title"></td>
        </tr>
        
        <td id="leftTD" align="center" valign="top" class="navigator"></td>
        <td id="rightTD" align="center" class="main"><%@include file="main3.jsp" %></td>
        
        <tr>
          <td colspan="2" align="center" class="footer">&nbsp;</td>
        </tr>
        <tr>
        <td colspan="2" align="center" valign="bottom" class="footer"><%@include file="includes/footer.jsp" %></td>
        </tr>
      </table>
     <script type="text/javascript">
        changeit();
        ///showPercent();
      </script>
     </body>
    </html>
      

  5.   

    footer.jsp文件如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <script type="text/javascript">
    <!--
    function   tick(){   
          var   hours,minutes, seconds;   
          var   intHours,intMinutes,intSeconds;   
          var   intYear,intMonth,intDate;   
          var   curYear,curMonth,curDate;   
          var   today;       
          today   =   new   Date();   
        
          intYear=today.getYear();   
          intMonth=today.getMonth();   
          intDate=today.getDate();   
          intHours   =   today.getHours();   
          intMinutes   =   today.getMinutes();   
          intSeconds   =   today.getSeconds();   
        
          curYear=intYear;   
          curMonth=intMonth+1+"/";   
          curDate=intDate+"/";   
            
          if(intHours   ==   0){   
             hours   =   "24:";   
          }else if(intHours   <   12){   
             hours   =   intHours+":";   
          }else if(intHours   ==   12){   
             hours   =   "12:";       
          }else {   
             hours   =   intHours   +   ":";         
          }   
           
          if(intMinutes   <   10){   
             minutes   =   "0"+intMinutes+":";   
          }else{   
             minutes   =   intMinutes+":";   
          }   
        
          if(intSeconds   <   10){   
             seconds   =   "0"+intSeconds+"   ";   
          }   
          else{   
             seconds   =   intSeconds+"   ";   
          }      
          timeString   =curMonth+curDate+curYear+" "+hours+minutes+seconds;     
          Clock.innerHTML=timeString;     
          window.setTimeout("tick();",   100);   
    }       
          window.onload   =   tick;  
    //-->
    </script>
    <html>
      <head>
        <title></title>   
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
      </head> 
     <body>
      <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="5" class="navigatorfont">&nbsp;</td>
          <td width="30%" class="navigatorfont">Confidential and Proprietary.  Not for external publication </td>
          <td width="40%" align="center" class="navigatorfont" id="Clock"></td>
          <td bgcolor="#666699">Powered by Edge Solutions, Inc </td>
        </tr>
      </table>
     </body>
      
    </html>
      

  6.   

    main3.jsp文件如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html xmlns:v>
    <head>
            <title>VML Pie</title>    
            <script type="text/javascript" src="scripts/script.js"></script>    
    </head>
    <STYLE>
    v\:* { BEHAVIOR: url(#default#VML) }
    </STYLE>
    <body>
    <div id="oneDiv" style="position:absolute;left:600px;top:400px;z-index:200; width:120;height:30;background-color:#CCCCCC;filter:Alpha(opacity=90);opacity:0.9;visibility:hidden;border-style:solid;valign=middle">
    </div>
    <div id="twoDiv" style="position:absolute;left:790px;top:400px;z-index:200; width:120;height:30;background-color:#CCCCCC;filter:Alpha(opacity=90);opacity:0.9;visibility:hidden;border-style:solid;valign=middle">
    </div>
    <div id="threeDiv" style="position:absolute;left:680px;top:530px;z-index:200; width:120;height:30;background-color:#CCCCCC;filter:Alpha(opacity=90);opacity:0.9;visibility:hidden;border-style:solid;valign=middle">
    </div><center>
    <font color=#FF0000>One</font>:
    <select id="one" onchange="changeit()">
    <option value="10">10%
    <option value="20">20%
    <option value="30">30%
    <option value="40" selected>40%
    <option value="50">50%
    </select>
    &nbsp;&nbsp;<font color="#00FF00">Two</font>:
    <select id="two" onchange="changeit()">
    <option value="5">5%
    <option value="10">10%
    <option value="20">20%
    <option value="30" selected>30%
    <option value="40">40%
    </select>
    &nbsp;&nbsp;<font color="#0000FF">Three</font>:<input id="three" type="text" readonly size="2" value="85">%<br><br>
    <center>
    <!--
    <v:group ID="group1" CoordOrig="-3000,-2000" CoordSize="6000,4000" style="width:300;height:200;position:relative">
                    <v:rect style="position:relative;left:-3000;top:-3000;WIDTH:6000;HEIGHT:6000;" fillcolor="white" strokecolor="black">
                    <v:shadow on="t" type="single" color="silver" offset="4pt,3pt"></v:shadow>
                    </v:rect>
                    <div id="pie"></div>
    </v:group>
    --><v:group ID="group1" style="width:55;height:53;position:relative">
                    <v:rect id="rect" style="position:relative;left:0;top:0;WIDTH:216;HEIGHT:215;" fillcolor="black" strokecolor="black" >
                     <v:shadow on="t" type="single" color="silver" offset="4pt,3pt"></v:shadow>                
                    </v:rect>
                    <div id="pie"></div>
    </v:group></center> 
    </body>
    </html>
      

  7.   

    然后scripts.js文件如下:
    /*  add by sky in 09/21/2007 */
    function changeit()
    {
    three.value=100-(parseInt(one.value)+parseInt(two.value));
    showPie();
    showPercent();
    }var r=2000;
    function createPie(sa,ea,color,n)
    {
      var fs=Math.PI*2*(sa/360);
      var fe=Math.PI*2*(ea/360);
      var sx=parseInt(r*Math.sin(fs));
      var sy=parseInt(-r*Math.cos(fs));
      var ex=parseInt(r*Math.sin(fe));
      var ey=parseInt(-r*Math.cos(fe));
      var newPie=document.createElement("<v:shape title='"+n+"' style='position:absolute;z-index:8;width:"+2*r+";height:"+2*r+"' CoordSize='4000,4000' strokeweight='1pt' fillcolor='"+color+"' strokecolor='black' path='m0,0 l "+sx+","+sy+" ar -2000,-2000,2000,2000,"+ex+","+ey+","+sx+","+sy+" l0,0 x e' />");
        pie.insertBefore(newPie);
    }function showPie()
    {
      pie.innerHTML="";
      createPie(0,parseInt(three.value)*3.6,"#0000FF","Three");
      createPie(parseInt(three.value)*3.6,parseInt(three.value)*3.6+parseInt(one.value)*3.6,"#FF0000","One");
      createPie(parseInt(three.value)*3.6+parseInt(one.value)*3.6,360,"#00FF00","Two");
    }function showPercent(){

      var pie=document.getElementById('pie');
      var group=document.getElementById('group1');
      var rightTD=document.getElementById('rightTD');
      var oneLabel=document.getElementById('one');
      var rect=document.getElementById('rect');
      var topTR=document.getElementById('topTR');  
        
      var oneSuffixSelect=document.getElementById('one').selectedIndex;
      var onePercent=document.getElementById('one').options[oneSuffixSelect].innerHTML;    
       var oneDiv=document.getElementById('oneDiv');
      oneDiv.innerHTML='<font color="#FF0000" > Product A'+'&nbsp;&nbsp;&nbsp;&nbsp;'+onePercent+'</font>';
      oneDiv.style.posLeft=rightTD.offsetLeft+(rightTD.offsetWidth-group.offsetWidth)*0.5+group.offsetWidth/4;
      oneDiv.style.posTop=topTR.offsetTop+topTR.offsetHeight+ oneLabel.offsetTop+oneLabel.offsetHeight+group.offsetWidth*8/11;
      oneDiv.style.visibility='visible';
      
      var twoSuffixSelect=document.getElementById('two').selectedIndex;
      var twoPercent=document.getElementById('two').options[twoSuffixSelect].innerHTML;
      var twoDiv=document.getElementById('twoDiv');
      twoDiv.innerHTML='<font color="#00FF00" >Product B'+'&nbsp;&nbsp;&nbsp;&nbsp;'+twoPercent+'</font>';
      twoDiv.style.posLeft=rightTD.offsetLeft+(rightTD.offsetWidth-group.offsetWidth)*0.5-group.offsetWidth/15;
      twoDiv.style.posTop=topTR.offsetTop+topTR.offsetHeight+ oneLabel.offsetTop+oneLabel.offsetHeight+group.offsetWidth/3;
      twoDiv.style.visibility='visible';
      
      var threePercent=document.getElementById('three').value;
      var threeDiv=document.getElementById('threeDiv');
      threeDiv.innerHTML='<font color="#0000FF">Product C'+'&nbsp;&nbsp;&nbsp;&nbsp;'+threePercent+'%</font>';
      threeDiv.style.posLeft=rightTD.offsetLeft+(rightTD.offsetWidth-group.offsetWidth)*0.5+group.offsetWidth*8/15;
      threeDiv.style.posTop=topTR.offsetTop+topTR.offsetHeight+ oneLabel.offsetTop+oneLabel.offsetHeight+group.offsetWidth/3;
      threeDiv.style.visibility='visible';   
      
      var rect=document.getElementById('rect');
      rect.style.visibility='visible';
    }
    /*  Done add by sky in 09/21/2007 */大家帮我看看啦,谢谢啦!
      

  8.   

    代码比较长,因为这是我工作要做的一个小demo,freedom2001(天翔) ( ) 信誉:99 我代码帖出来啦,帮我看看啊!
      

  9.   

    把oneDiv.style.visibility='visible';里类似这样的代码都去掉试试看。
    刚开完会,你的JS代码放我在有问题,只能你自己调了
      

  10.   

    function showPercent(){

      var pie=document.getElementById('pie');
      var group=document.getElementById('group1');
      var rightTD=document.getElementById('rightTD');
      var oneLabel=document.getElementById('one');
      var rect=document.getElementById('rect');
      var topTR=document.getElementById('topTR');  
        
      var oneSuffixSelect=document.getElementById('one').selectedIndex;
      var onePercent=document.getElementById('one').options[oneSuffixSelect].innerHTML;    
      var oneDiv=document.getElementById('oneDiv');
      oneDiv.style.visibility='hidden';
      oneDiv.innerHTML='<font color="#FF0000" > Product A'+'&nbsp;&nbsp;&nbsp;&nbsp;'+onePercent+'</font>';
      //oneDiv.style.posLeft=rightTD.offsetLeft+(rightTD.offsetWidth-group.offsetWidth)*0.5+group.offsetWidth/4;
      //oneDiv.style.posTop=topTR.offsetTop+topTR.offsetHeight+ oneLabel.offsetTop+oneLabel.offsetHeight+group.offsetWidth*8/11;
      oneDiv.style.visibility='visible';
      
      var twoSuffixSelect=document.getElementById('two').selectedIndex;
      var twoPercent=document.getElementById('two').options[twoSuffixSelect].innerHTML;
      var twoDiv=document.getElementById('twoDiv');
      twoDiv.innerHTML='<font color="#00FF00" >Product B'+'&nbsp;&nbsp;&nbsp;&nbsp;'+twoPercent+'</font>';
      //twoDiv.style.posLeft=rightTD.offsetLeft+(rightTD.offsetWidth-group.offsetWidth)*0.5-group.offsetWidth/15;
      //twoDiv.style.posTop=topTR.offsetTop+topTR.offsetHeight+ oneLabel.offsetTop+oneLabel.offsetHeight+group.offsetWidth/3;
      twoDiv.style.visibility='visible';
      
      var threePercent=document.getElementById('three').value;
      var threeDiv=document.getElementById('threeDiv');
      threeDiv.innerHTML='<font color="#0000FF">Product C'+'&nbsp;&nbsp;&nbsp;&nbsp;'+threePercent+'%</font>';
      //threeDiv.style.posLeft=rightTD.offsetLeft+(rightTD.offsetWidth-group.offsetWidth)*0.5+group.offsetWidth*8/15;
      //threeDiv.style.posTop=topTR.offsetTop+topTR.offsetHeight+ oneLabel.offsetTop+oneLabel.offsetHeight+group.offsetWidth/3;
      threeDiv.style.visibility='visible';   
      
      var rect=document.getElementById('rect');
      rect.style.visibility='visible';
    }
    注释掉几句好像就不刷了,但是比例值放不对地方。你再研究下吧,俺的赶紧写方案去了
      

  11.   

    我知道啦,你注释的地方都是我放置那个div百分比层的设置起始位置(x,y)的地方。