日期:2014-05-18  浏览次数:20695 次

关于一个页面两个Form的问题
我有个输入页面,比如有图片名称,上传日期,上传人等文本框,还有一个图片上传选择项,但上传选择项要用到form,而提交数据时也要用到一个form,我知道form不能相嵌,但我又不想上传图片和上面这些输入框分开,各位有什么好的办法吗?
我的代码如下:
<html>
    <body>
          <form   name= "form1 "   method= "post "   action= "xxx ">
<table   width= "100% "     border= "1 "   cellspacing= "1 "   cellpadding= "1 ">
    <tr>
        <td   width= "8% "> 上传日期: </td>
        <td   width= "92% ">
            <input   type= "text "   name= "textfield ">
        </td>
    </tr>
    <tr>
        <td> 上传人: </td>
        <td> <input   type= "text "   name= "textfield "> </td>
    </tr>
    <tr>
        <td   colspan= "2 ">
            <form   id= "fileUploadForm "   name= "fileUploadForm "   action= "xxx "  
enctype= "multipart/form-data "   method= "post ">
                      <input   type= "file "   name= "file ">
                    </form>
      </td>
    </tr>
    <tr>
        <td   colspan= "2 "> <input   type= "submit "   name= "Submit "   value= "提交 "> </td>
    </tr>
</table>
</form>
    </body>
</html>

------解决方案--------------------
必须分开,因为JAVA的上传的FORM和普通FORM是有区别的就是enctype= "multipart/form-data "
所以你不能使用一个FORM,只能是先把文件传了, 然后再返回这个页, 再提交另一个FORM, 你可以控制必须传文件, 不然信息那个FROM不让他提交. 你想用一个按钮来提交这两个信息的话,比较麻烦, 理论上是可以实现的, 只不过没有那么做的必要,就是点提交的时候,让提交按钮先去按上传的按钮, 这时上传文件, 然后返回这个页,带一个参数回来, 然后页的ONLOAD指向一个JS方法, 在里面判断带回的参数, 然后自动提交另一个FORM, 这个是可以实现的, 但是需要时间去调试, 如果不是客户要求, 建议不这么做.我曾经做过一个非常变态的上传,做了一个月,因为日本人要求必须那样.所以没办法.
------解决方案--------------------
上传form可以放到一个iframe里面去
------解决方案--------------------
向父窗口传值,你可用用script啊,如xxx是你父窗口的文本框
<script>
function sendValue()
{
parent.document.getElementById( "xxx ").value= "xxxxxxxxxxxxxxx ";
}
</script>