打开文件浏览器以选择文件以输入类型=文件触发选择框选项更改

时间:2014-04-10 19:58:16

标签: javascript jquery

我正在尝试为输入类型文件打开文件浏览器窗口,在选择框选项上触发更改。但它没有用。知道什么是错的以及如何使它工作? FWIW我试图从http://jsfiddle.net/afxDC得到一个想法,那就是文本字段。

更新: - 我发现此代码适用于FF 28.0,但不适用于chrome 33.0.1750.152和Safari V7.0.3(9537.75.14)。所以需要让它在这些浏览器上运行

<html>
  <head>
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.js"></script>
    <style type="text/css">
      input[type=file] {
        display:block;
        height:0;
        width:0;
      }
    </style>
  </head>
  <body>
    <div class="item">
      <select id="media-selector">
          <option value=""></option>
          <option value="image">Add image</option>
          <option value="video">Add video</option>
      </select>
      <input type="file"/>
    </div>
    <script type="text/javascript">
      $("#media-selector").change(function() {
        $(this).parents(".item")
          .find('input[type=file]')
          .trigger('click');
      });
    </script>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

以下是一个解决方案 - http://jsfiddle.net/afxDC/33/

jQuery -

$('#media-selector').change(function () {
    $(this).closest('.item')
        .find('input[type=file]')
        .trigger('click');
});

HTML

<div class="item">
    <select id="media-selector">
        <option value=""></option>
        <option value="image">Add image</option>
        <option value="video">Add video</option>
    </select>
    <input type="file" />
</div>