我想使用提交输入来触发文件输入中的单击并提交表单本身。单击提交按钮将打开一个文件选择器窗口,并在它关闭后提交表单。我正在使用这段代码:
<?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() 调用中提交表单,但没有骰子。我在控制台或其他任何地方都没有错误。