我想使用提交输入来触发文件输入中的单击,并且还要提交表单本身。单击提交按钮将打开文件选择器窗口,关闭后将提交表单。我正在使用此代码:
<?php
var_dump($_FILES);
echo "<br>".time();
?>
<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#uploadform").submit(function() {
$("#file", this).click();
return false;
});
$("#uploadform #file").change(function() {
$(this).closest("#uploadform").unbind('submit').submit();
});
});
</script>
</head>
<body>
<form id="uploadform" name="uploadform" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" style="position:absolute; top:0; left:0; visibility: hidden">
<input type="submit" value="Submit">
</form>
</body>
</html>
在FF和WebKit中,这可以正常工作,但在IE中,调用submit()时不会提交表单。您可以判断,因为PHP在页面顶部生成的当前时间不会更改。我尝试在setTimeout()调用中提交表单,但没有骰子。我在控制台或其他任何地方都没有错误。
答案 0 :(得分:3)
IE有一个安全检查,如果用户没有亲自点击文件上传按钮,那么它就不会提交表格。
您不能使用javascript为他们执行此操作。