javascript - 从不同的地方触发文件选择窗口

标签 javascript jquery html forms

我有一个像这样的 HTML 表单:

<style>.hidden { display: none; }</style>

<form method="post" action="upload">
    <div id="dropzone" class="pre-upload">
        <div class="comp">
            <h1>Drop your images here</h1>
            <p>or simply click to select them.</p>
            <input type="file" name="images" id="upload_button" class="hidden" />
        </div>
            <div class="fing">
                <p>Tap to select your images</p>
            </div>
    </div><!-- Pre upload div -->
</form>

我想做#dropzone如果单击,将打开标准文件选择窗口。它应该打开 #upload_button专门的文件选择器。

我尝试了以下方法,但没有成功:

$('#dropzone').click(function(){
    $('#upload_button').click();
});

如您所见,我正在尝试通过 jQuery 实现此结果。

我以为这会触发窗口,但它只是什么也没做。

<小时/>

@投票关闭此项目的人:

如您所见,您链接到的其他问题完全没有回答我的问题。这是嵌套我的 input 的另一个问题错。因此,在盲目投票结束之前,最好检查提供的代码并尝试看看问题是否与常见问题有所不同。毕竟这是一个寻求帮助的网站。

最佳答案

看起来像是循环引用问题。您的文件上传按钮位于您想要单击以触发该按钮的 div 内。触发div上按钮的点击,也会触发div上的点击,所以它无限递归。

如果您观察控制台,您会看到“超出最大调用堆栈大小” 错误。

将按钮移到要单击的 div 之外会使其按预期运行。

这是一个jsfiddle来演示问题。

关于javascript - 从不同的地方触发文件选择窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20384524/

相关文章:

javascript - Azure Function - js - 运行不正确,但日志中没有错误

jquery - 旅程不会停止播放! (使用 JQuery 更改嵌入对象的值不会更改播放视频)

html - 圆像方

javascript - CSS3下拉菜单假JS问题

javascript - 测试错误 : Component is not part of any NgModule or the module has not been imported into your module

javascript - Pagedown 转换 <code><pre> 标签之间的所有内容

javascript - 如何将 json 对象字符串传递给 javascript 函数?

javascript - 在 jQuery AJAX 中显示很棒的字体

javascript - openui5树中fire select事件的参数是什么?

javascript - 在表结构中设置javascript输出