我已经彻底搜索过,无法找到适合我特定情况的解决方案。我有一个使用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 - &gt; “登录” - &gt; “通过电子邮件签名” 任何帮助深表感谢! (也是第一篇文章,很抱歉,如果我的格式很糟糕!)
答案 0 :(得分:0)
IE可能存在表单问题,因为它没有<input type="submit" />
。
在任何一种情况下,引用表单元素的方法都是过时的和非标准的。您应该通过标准化方法引用HTML节点:document.getElementById
,document.getElementsByTagName
等。您还可以使用更加过时的document.querySelector
和document.querySelectorAll
方法(IE8 +)。
答案 1 :(得分:0)
在提交之前尝试设置此属性:
document.forms["uploadImageForm"].setAttribute("encoding","multipart/form-data");
IE在通过js
提交多部分表单时遇到问题答案 2 :(得分:0)
找到解决方案:
在构建表单时,我最初将action=" "
字符串作为空字符串传递。但是,我当时正在执行一个document.myformname.action="API_CALL.html"
,它将动作添加到表单两次......显然IE不喜欢这个
干杯!并感谢您的建议, 亚历