[英]document.submit() not working in IE (works in chrome,ff,and safari)
我已经进行了彻底的搜索,找不到适合我特定情况的解决方案。 我有一个使用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->“登录”->“使用电子邮件登录”。非常感谢您的帮助! (也是第一篇文章,对不起,如果我的格式太烂了!)
IE可能存在格式问题,因为它没有<input type="submit" />
。
在任何一种情况下,您引用表单元素的方法都是过时的并且是非标准的。 您应该通过标准化方法来引用HTML节点: document.getElementById
, document.getElementsByTagName
等。您还可以使用过时的document.querySelector
和document.querySelectorAll
方法(IE8 +)。
尝试在提交之前设置此属性:
document.forms["uploadImageForm"].setAttribute("encoding","multipart/form-data");
IE在通过js提交多部分表单时遇到问题
找到一个解决方案:
构建表单时,我最初将action=" "
字符串作为空白字符串传递。 但是,我当时正在执行document.myformname.action="API_CALL.html"
,该操作将动作两次添加到表单中……显然IE不喜欢这样
干杯! 感谢您的建议,Alex
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.