javascript - 无法获取属性值 'submit' : object is null or undefined

标签 javascript html forms submit

我有一个 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");

或者您可以在框架中包含一些代码,将父级中的变量设置为表单,但我不相信该方法。

来源:accessing a form that is in an iframe


编辑:

此外,为了使上传表单有效,它需要看起来像任何其他表单一样,除了:

  • 表单标签必须指定POST方法
  • 表单标记必须指定 enctype multipart/form-data
  • 表单必须包含 <input type=file>元素。

关于javascript - 无法获取属性值 'submit' : object is null or undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14748108/

相关文章:

javascript - div 溢出 : scroll 的 jQuery 偏移问题

javascript - HTML 布局随 JS 或 CSS 变化?

javascript - 我怎样才能重置我的倒计时并避免多个计时器

javascript - 如何向多个元素添加EventListener和以element为参数的函数?

javascript - 如何在node.js中向GET请求添加参数?

javascript - Android,使用javascript接口(interface)从webview中提取javascript变量

javascript - 如何在 css 中开始滚动时重新创建 mac 滚动条淡入淡出

forms - 如何检测 Form Resize END,可能是通过使用 TApplicationEvents 组件?

javascript - 验证/事件-用js阻止表单提交的方法是什么?

php - 使用 PHP 将 HTML 表单数据插入 MySQL 数据库