繁体   English   中英

为什么选择文件后此表单不自动提交?

[英]Why Isn't This Form Auto-Submitting Upon File Select?

以下是该页面的代码,但是,您将在头上看到我在javascript中放入的代码,该代码应检查是否通过代码底部的文件上传输入字段选择了一个文件。 检测到文件选择后,应该自动提交表单,但是由于某种原因它不会自动提交。 为什么这不起作用? 提前致谢!

JavaScript :(在head

<head>
    <script type="text/javascript">
        document.getElementById("photofield").onchange = function() {
            document.getElementById("form").submit();
        }
    </script>
</head>

HTML(表格):

<form enctype="multipart/form-data" action="photoupload.php" method="post" id="form">
    <input type="hidden" name="MAX_FILE_SIZE" value="524288">
    <p><input id="photofield" type="file" name="upload" /></p>
    </fieldset>
    <div align="center"><input type="submit" name="submit" value="Submit" /></div>
    <input type="hidden" name="submitted" value="TRUE" />
 </form>

这是因为您有一个输入元素( submit button ),其名称为submit ,这就是问题所在,如果您将提交按钮的名称更改为不同于submit的名称,那么它将起作用,例如,将您的submit button代码更改为btn_submit而不是submit

<input type="submit" name="btn_submit" value="Submit" />

现在试试这个

window.onload = function(){
    document.getElementById("photofield").onchange = function() {
        document.getElementById("form").submit();
    };
};

名称为submit ,它将引发以下错误

Uncaught TypeError: Property 'submit' of object #<HTMLFormElement> is not a function

它设置一个属性submitHTMLFormElement ,因此该方法submitprototype形式元素不能被执行,检查该工作示例 (仅在浏览器测试)。

另外,在窗口onload (也请阅读addEventListener并也阅读 )事件上注册事件非常重要,因为当您的代码在head运行时,该窗体不可用,并且会引发以下错误

Cannot set property 'onchange' of null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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