当<input type =“file”/>在表单中时,jQuery submit()在IE中不起作用

时间:2013-08-07 15:14:48

标签: html internet-explorer

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

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

1 个答案:

答案 0 :(得分:3)

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

您不能使用javascript为他们执行此操作。