document.submit()无法在IE中工作(适用于chrome,ff和safari)

时间:2013-03-07 22:07:17

标签: javascript html internet-explorer

我已经彻底搜索过,无法找到适合我特定情况的解决方案。我有一个使用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; “通过电子邮件签名” 任何帮助深表感谢! (也是第一篇文章,很抱歉,如果我的格式很糟糕!)

3 个答案:

答案 0 :(得分:0)

IE可能存在表单问题,因为它没有<input type="submit" />

在任何一种情况下,引用表单元素的方法都是过时的和非标准的。您应该通过标准化方法引用HTML节点:document.getElementByIddocument.getElementsByTagName等。您还可以使用更加过时的document.querySelectordocument.querySelectorAll方法(IE8 +)。

答案 1 :(得分:0)

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

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

IE在通过js

提交多部分表单时遇到问题

答案 2 :(得分:0)

找到解决方案:

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

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