无法获取属性'的值;提交':对象为null或未定义
Unable to get value of the property 'submit': object is null or undefined
我有一个iframe和表单,如下所示:
<iframe id="FileUploadFrame" name="FileUploadFrame" src="" style="display: none; border: 0; width: 0; height: 0;">
<form id="FileUploadForm" name="FileUploadForm" accept-charset="utf-8" target="FileUploadFrame" enctype="multipart/form-data" encoding="multipart/form-data" method="POST" action="CIMtrek_Regional_WhseForm_FileUpload">
</form>
</iframe>
这就是我在iframe
中提交表格的方式
function fileUpload() {
//var UploadForm = document.forms["FileUploadForm"];
var UploadForm = global.forms["FileUploadForm"];
alert("Form : "+typeof global.forms["FileUploadForm"]);
alert("Form : "+typeof global.forms["FileUploadFrame"]);
iframeId = document.getElementById("FileUploadFrame");
// Add event...
var eventHandler = function () {
if (iframeId.detachEvent) iframeId.detachEvent("onload", eventHandler);
else iframeId.removeEventListener("load", eventHandler, false);
// Message from server...
if (iframeId.contentDocument) {
content = iframeId.contentDocument.body.innerHTML;
} else if (iframeId.contentWindow) {
content = iframeId.contentWindow.document.body.innerHTML;
} else if (iframeId.document) {
content = iframeId.document.body.innerHTML;
}
document.getElementById(div_id).innerHTML = content;
}
if (iframeId.addEventListener) iframeId.addEventListener("load", eventHandler, true);
if (iframeId.attachEvent) iframeId.attachEvent("onload", eventHandler);
//alert('submitting form');
//form.submit();
//document.forms["FileUploadForm"].submit();
alert(UploadForm.submit());
}
但我在提交表格时遇到了以下异常:
Error: Unable to get value of the property 'submit': object is null or undefined
请帮我找到问题并解决。
向致以最诚挚的问候
获取FileUploadForm
的方法是:
iframeId = document.getElementById("FileUploadFrame");
//This is the trick
var ifrDoc = iframeId.contentDocument || iframeId.contentWindow.document;
var UploadForm = ifrDoc.getElementById("FileUploadForm");
或者,您可以在框架中有一些代码,将parent中的变量设置为表单,但我不相信这种方法。
来源:访问iframe 中的表单
编辑:
此外,为了使上传表格有效,它需要看起来像任何其他表格,除了:
- 表单标记必须指定
POST
方法 - 表单标记必须指定
multipart/form-data
的enctype - 表单必须包含CCD_ 5元素
没有document.forms["FileUploadForm"]
,因为您的表单在iframe中。iframe的document
与执行脚本的document
不同。
在您的脚本中,在函数的开头添加这一行
var iframe = document.getElementById('FileUploadFrame');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var UploadForm = innerDoc.forms["FileUploadForm"];
相关文章:
- 在CoffeeScript文件上运行Jasmine测试时,对象未定义错误
- JavaScript 对象 - 未定义的数字键文字
- 为什么页面方法对象未定义
- JavaScript对象表示嵌套对象未定义
- Javascript类构造的对象未定义
- JQuery TypeError:对象未定义(length=object.length,)
- 用于从许多带有“for”循环的URL中获取HTML信息的X射线使对象未定义
- 如何避免收到一条消息,指出对象未定义
- JavaScript 对象未定义
- JavaScript 对象未定义它是否在几年前工作
- 揭示模块模式:对象未定义
- 对象未定义/HTML使用jQuery输出
- 为什么子 html 对象未定义/空
- 提取 JSON 对象未定义
- 为什么这个带有最简单的构造函数的 javascript 对象未定义
- “对象”未定义日历.js
- 对象未定义到模块中,Nodejs javascript
- javascript对象未定义
- Twilio响应对象未定义,但没有错误
- 为什么"对象未定义”;在这种情况下没有抛出错误