2

我已经彻底搜索,找不到适合我具体情况的解决方案。我有一个使用 构建的弹出窗口window.open("","",""),在该窗口内我构建了一个如下所示的表单:

<form id="uploadImageForm" action="<?php  echo $_GET['action']; ?>" enctype="multipart/form-data" method="post">
    <input type="file" name="files[0]" size="40"/>
    <input type="text" name="token" value="<?php  echo $_GET['token']; ?>"/>
</form>

然后我调用doUpload从另一个窗口调用的函数。我可以很好地使用这个功能,而且这些document.forms["uploadImageForm"].东西在除 IE 之外的所有其他浏览器中都运行良好。使用 IE 的调试器观察 DOM 中的变量表明,document.forms["uploadImageForm"].action ="http://server_api_call.html";两者 document.forms["uploadImageForm"].token.value = comGroupId; 都可以正常工作,但无论出于何种原因,它都会死掉document.forms["uploadImageForm"].submit();

此表格位于 www.joynme.com/alex/w/index.html -> “登录” -> “使用电子邮件签名” 非常感谢任何帮助!(也是第一篇文章,如果我的格式很糟糕,很抱歉!)

4

3 回答 3

0

在提交之前尝试设置此属性:

document.forms["uploadImageForm"].setAttribute("encoding","multipart/form-data");

IE通过js提交多部分表单有问题

于 2013-03-07T22:20:19.523 回答
0

找到了解决方案:

在构建表单时,我最初将一个action=" "字符串作为空白字符串传递。但是,我当时正在执行一个document.myformname.action="API_CALL.html",将操作两次添加到表单中......显然 IE 不喜欢这样

干杯! 并感谢您的建议,亚历克斯

于 2013-03-08T02:40:29.630 回答
0

也许 IE 的表单存在问题,因为它没有<input type="submit" />.

无论哪种情况,您引用表单元素的方法都已过时且不标准。您应该通过标准化方法引用 HTML 节点:document.getElementByIddocument.getElementsByTagName等。您还可以使用更过时的document.querySelector方法document.querySelectorAll(IE8+)。

于 2013-03-07T22:15:44.297 回答