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

Javascript 打开文件浏览器为输入类型选择文件=选择框选项更改时触发文件,javascript,jquery,Javascript,Jquery,我正在尝试打开输入类型文件的文件浏览器窗口,在选择框选项更改时触发。但它不起作用。你知道什么地方出了问题,怎么让它工作吗?FWIW我试图从中得到一个想法,那就是文本字段 更新:-我发现该代码适用于FF 28.0,但不适用于chrome 33.0.1750.152和Safari版本7.0.3 9537.75.14。所以我们也需要让它在那些浏览器上运行 这里有一个解决方案- jQuery- $('#media-selector').change(function () { $(this).c

我正在尝试打开输入类型文件的文件浏览器窗口,在选择框选项更改时触发。但它不起作用。你知道什么地方出了问题,怎么让它工作吗?FWIW我试图从中得到一个想法,那就是文本字段

更新:-我发现该代码适用于FF 28.0,但不适用于chrome 33.0.1750.152和Safari版本7.0.3 9537.75.14。所以我们也需要让它在那些浏览器上运行

这里有一个解决方案-

jQuery-

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


对你有用吗?我也访问了你的JSFIDLE,但是我发现它没有工作。使用FF作为浏览器对我来说很好。更改下拉列表将打开文件浏览器。我使用的是chrome版本33.0.1750.152,它对我不起作用。我发现,我从未在FF上检查过我的解决方案,甚至我的代码在FF上也能工作。所以让它在Chrome上运行是一个挑战。我刚刚在Chrome上测试过,它运行得很好。版本34.0.1847.116,但我确信这也适用于早期版本。你试过其他浏览器吗?我已经在IE、Chrome、FF和Safari中进行了测试-所有工作都完成了。
$('#media-selector').change(function () {
    $(this).closest('.item')
        .find('input[type=file]')
        .trigger('click');
});
<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>