是否和javascripts的进程管理有关,我是顺序写的
        form1.submit();
        reload.click();
是不是在form1.submit();正在执行的时候,就开始执行reload.click(),造成了不提交servlet.
请高手们指教。

解决方案 »

  1.   

    建议使用XMLHTTP,等servlet返回后再做刷新
      

  2.   

    xjdawu(左右互搏) :
       能不能说的具体一点,麻烦你了
      

  3.   

    这是估计与你的程序运行顺序有关,你可以这样,指定你的表单的 target ,将表单提交到这个页里的一个隐藏的 iframe 里,然后在 servlet 里判断后再返回逻辑代码,再来调用 parent.reload.click(); 这样就可以达到只有正常登录才会刷新的效率,当然你想做得酷点的话,可以用 xmlhttp 来代替表单的提交。
      

  4.   

    XmlHttp = new ActiveXObject("MSXML2.XMLHTTP")
    var url = "/action/loginServlet?username="+username.value+"&password="+password.value
    //如果参数过多,可以用XML来组织,下面的语句再作相应修改
    XmlHttp.Open( "POST", url, false );
    XmlHttp.Send();
    if (XmlHttp.status != 200)
    {
      return false //登录失败,返回
    }
    return true //登录成功,刷新
    ...loginServlet中处理request,如果需要返回相应的信息,可以response字符串,也可以是xml/html,客户端用XmlHttp.responseText或XmlHttp.responseXML来获取感兴趣的话建议搜索相关资料了解下
      

  5.   

    各位,我的所有画面,全是用showModalDialog打开窗体的窗体,请大家在这个基础上帮想想办法。
      

  6.   

    meizz(梅花雪) 
    能否把你的方案说的具体一点呢
      

  7.   

    meizz(梅花雪) 
    你说的:“指定你的表单的 target ,将表单提交到这个页里的一个隐藏的 iframe 里”
    我建了一个<iframe style="display:none;" id="Frame"  src="test.jsp" />,但是你说的将表单form1.target ="?",这里怎么写合适呢,我要完成画面自刷新,这样会不会新打开了一个窗体。
      

  8.   

    meizz(梅花雪):
        你还在吗,楼主的问题请回答一下啊。小弟想听听你的高见啊。