form.submit()发送请求通常是单向的,若是须要取返回的数据,通常会发送ajax请求,可是若是form中有附件呢?(之后有时间给你们分享ajax上传附件的功能),确实须要返回数据来知道该功能是否执行成功呢?个人解决方法是在form 中增长一个target属性,让其返回的数据添加到一个隐藏的iframe的控件中,返回的数据javascript
<label for="a"> 上传附件 </label> <form id="uploadForm" enctype="multipart/form-data" target="frameFile" method="post"> <input type="file" id="a" name="a" onchange="fileUpload()" style="position:absolute;top:0px;right:0px;cursor:pointer; opacity:0;filter:alpha(opacity:0);z-index:999;" /> </form> <iframe id='frameFile' name='frameFile' style="display:none"> </iframe>
如下是返回页面中后台返回数据的处理java
<script type="text/javascript"> try { var data = eval("($result)") if (data.success) { alert(data.res) } window.top.LoadByFrame(data.success); } catch (e) { window.top.closeBg(); } </script>
function fileUpload() { var form = document.getElementById('uploadForm'); form.action="XXX.do?"; form.submit(); }
这样就可以在隐藏的iframe中显示处理过的数据了 ajax