此问题阻挡了我前进的路。
  
     页面有一 <input type="file">
  
     我要上传一个文件,验证文件大小。
 
     由于特殊的原因,我需要用js函数 构造form表单,把<input>框 append进form. 定义好action请求和form.target。
 
     然后在js函数 form.submit()、
  
     在后台代码中,我对文件进行校验。这都不用您操心,我自己搞定。     问题来了. 我的代码逻辑是,等form.submit()请求完后并反馈结果。如
 
    <script>
     //定义好form
     //form.submit()  提交请求
     // 获得后台传来的值 isOK?
     //判断 isOK == Y??
    
    <script>    请求还没跑完,后面的js代码就执行了,导致isOK==我在后台定义的默认值、
  
    此问题已经几天了。在线等,请速回。

解决方案 »

  1.   

    form.submit()
    这条路走不通的!
    你要实现这样的效果,最好用AJAX,这样不用表单也能提交数据。
      

  2.   

    你先要弄清楚jsp 和 javascript执行的先后顺序和原理。
    提交请求,返回本页面。首先你要先判断请求是否已经提交,然后判断请求后回传的值。你可以不用在后台去判断文件的大小,采用js直接去判断就可以了。
    参见:http://liaoshaoyao.javaeye.com/blog/726705
      

  3.   

    javascript的form.submit()提交后,会不考虑jsp后台程序执行,直接调用后面的javascript方法的。
    http://www.pqshow.com/design/Javascript/200909/10819.html 可以看看这个例子
      

  4.   


     你们说的这种方法我N久之前就试过了,真正的大型项目中。类似移动。 你能要求用户修改IE的安全级别来保证你代码正常运行?? 这种方法安全级别高了就行不通。
      

  5.   

    可以写上form的一个属性onsubmit="return false",然后再检查一下你写的先后顺序
      

  6.   

    应把提交后接收ISOK的JS处理,放在验证文件的JSP里,在验证完文件后,把结果写入一个JS变量弹出或直接写入一个HTML标签显示域里。