用sumbit恐怕不能,你的效果通常是ajax提交实现的,这个需要通过ajax提交表单,
此时主页面可以显示动态的效果,当提交完毕效果可以消失

解决方案 »

  1.   

    谢谢xiaolei1982 ,ajax我没用过,学一下
    有没有什么简单的办法
      

  2.   

    因为提交后,本页面即将unonload,一些动态效果会停滞。最好的办法当然是Ajax,不过也可以使用隐藏iframe:<div   id="contentDiv"   style="display:none"> 
    <!-- 
      这里是form   
    --> 
    <form target="doAction">
    ...
    </form>
    </div>
    <iframe style="display:none" name="doAction"></iframe>这样form的数据会提交到隐藏的 doAction 里,原页面不受影响,可以正常显示动画在 doAction 里可以增加 onload 事件回应主页面的处理结果window.onload = function(){
        alert('处理成功');
        parent.init();
    }
      

  3.   

    没用过ajax的话,就在页面嵌套一个iframe,然后把form的target属性为iframe的name,让提交在ifrmae中进行。如果用ajax就相对好一点但复杂一点。............
    <form ............... target="save">
    .......
    </form>
    <iframe name="save" style="display:none"></iframe>
    ..........
      

  4.   

    同楼上,这种效果一定要用ajax来实现的.不然你打开gif图层的时候关闭的时候没办法判断他已经完全读取数据了.
      

  5.   

    又撞了。其实也不一定非要ajax,只是ajax容易管理,iframe的话就要在提交目标页面处理完后用几句JS把那个图层重新关闭,并提示提交成功。以前我的后台页面也用这种方法,后来用了ajax,感觉用起来爽很多。
      

  6.   

    我试了一下,把form 的target 指向一个 不显示的iframe,
    提交后,动画确实动起来了,
    但是,提交处理结束后,应该会转到另一个页面,现在就停在这里了,一直播放动画
    这是什么原因?
      

  7.   

    另外,问一下,如果用ajax,我应该怎么做呢?
      

  8.   


    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    <meta name="author" content="tonyhl[at]126.com" />  
    </head> 
    <body onunload="window.opener.opener.aaa();"> 
    <h2>Ajax应用实例: 注册模块</h2> 
    <div id="Layer1"> 
      <div id="msg"></div> 
    </div> 
    ID: <input type="text" id="regid"  /> 
    Password: <input type="password" id="regpassword" /> 
    <input name="f" type="file" /> 
    <input type="submit" id="regsubmit" value="注册" onclick="Check()" /> 
    <h2>当注册ID为 tony的用,后台ID已存在,返回提示信息<br /> 
    突出示无刷新效果,服务器端程序将自行百万加法运算 
    </h2> 
    </body> 
    </html> 
    <script language="javascript">
    function GE(a){return document.getElementById(a);} 
    function Check(){ 
     if(GE('regid').value==''){GE('msg').innerHTML='ID不能空';return false} 
     if(GE('regpassword').value==''){GE('msg').innerHTML='password 不能空';return false} 
     
     var X=new ActiveXObject("Msxml2.XMLHTTP"); 
     if(X){ 
      GE('regsubmit').disabled=true; 
      X.onreadystatechange=function(){ 
       if(X.readyState==4){ 
      
        if(X.status==200){ 
    GE('msg').innerHTML="";
         alert(X.responseText) ;
        } 
        else{GE('msg').innerHTML=X.statusText;} 
       } 
       
       else{GE('msg').innerHTML="<img src='1.jpg'>";}//你的img动画 
      }; 
      X.open('POST','ajax3.asp',true); 
      X.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
      var SendData = 'regid='+GE('regid').value+'&regpassword='+GE('regpassword').value+'&file='+GE('f').value //传递变量
      X.send(SendData) 
     } 
     else{ 
     GE('msg').innerHTML='你的不支持XMLHttpRequest' 
     } 
    }
    </script>
    <% 
    Dim regid, regpassword, str 
    regid=Request.Form("regid") 
    regpassword=Request.Form("regpassword") 
    f=Request.Form("file") Response.Write regid & regpassword '利用变量进行数据库操作
    Response.End 
    %>完全可以看到效果
      

  9.   

    之所以要用AJAX或是IFRAME 是因为,在点击提交之,就会把当前的浏览器锁住. 等服务器处理完数据.再通知浏览器加载.
    用AJAX提交就不会锁住浏览器,这时用户可以查看网页的其它内容.. 
      

  10.   

    如果要显示后台正在处理数据的步骤呢,该如何?比如显示“正在查找数据”“正在生成表”“正在生成HTML文件”,完成进度是多少。
      

  11.   

    提交后,重新赋值IMG的SRC,即可。如下:<html>
    <head>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页</title>
    </head>
    <body>
    <img src="http://gg.blueidea.com/2007/dw/dw.gif" id="jia"><p>
    <a href="javascript:">提交表单,动画停止</a><p>
    <a href="#" onclick="document.all.jia.src=document.all.jia.src";>播放动画</a>
    </body>
    </html>
      

  12.   

    我试了一下,把form   的target   指向一个   不显示的iframe, 
    提交后,动画确实动起来了, 
    但是,提交处理结束后,应该会转到另一个页面,现在就停在这里了,一直播放动画 
    这是什么原因?
      

  13.   

    可以这样:
    把动画放在response页面里,而不是request页面里。
      

  14.   

    你在提交前重新指定一下这个img的src,要确保这个图片被重新载入了,这样才会有动画。