2

我想使用提交输入来触发文件输入中的单击并提交表单本身。单击提交按钮将打开一个文件选择器窗口,并在它关闭后提交表单。我正在使用这段代码:

<?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() 调用中提交表单,但没有骰子。我在控制台或其他任何地方都没有错误。

4

1 回答 1

3

IE 有一个安全检查,如果用户没有亲自点击文件上传按钮,那么它不会提交表单。

你不能使用 javascript 来为他们做这件事。

于 2013-08-07T15:20:42.423 回答