繁体   English   中英

document.submit()在IE中不起作用(在chrome,ff和safari中有效)

[英]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.getElementByIddocument.getElementsByTagName等。您还可以使用过时的document.querySelectordocument.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM