【问题标题】:open file upload dialog on click点击打开文件上传对话框
【发布时间】:2011-06-09 12:32:30
【问题描述】:

我必须通过单击其他按钮打开文件上传对话框,即我正在隐藏文件上传控件(可见性:隐藏)并单击其他按钮我想打开该对话框。 下面是我的代码:

<input type="file" style="visibility: hidden;" />

下面是javascript:

$('#button').click(function() {
    $('input[type=file]').click();
});

它在 Firefox 4 和 IE8 中运行良好,但在 chrome12 中无法运行,即对话框未打开。知道为什么吗?

【问题讨论】:

    标签: javascript jquery html file-upload


    【解决方案1】:

    今天测试了问题中给出的简单代码,情况发生了变化:

    • IE9:工作
    • Chrome23:工作
    • Firefox15:有效

    只有一个问题 - 在 IE 上 .click() 是一种阻塞操作,而在其他浏览器上则不是。

    【讨论】:

    • 你能解释一下阻塞操作是什么意思吗?
    • fileElement.click(); var x = fileElement.value; - 在 IE 上这将按预期工作,但在其他浏览器上 x 将为空。
    【解决方案2】:

    在您的示例中,您的文件输入没有 id,但您尝试使用 #input 引用它。这对我有用:

    $('#button').click(function() {
        $('input[type=file]').click();
    });
    

    【讨论】:

    • 实际上现在这不起作用,无论是从浏览器更新到 jquery 的更新还是从浏览器更新
    【解决方案3】:

    您应该将 input[file] 放置在您的自定义控件上方。然后绑定到它的onclick。

    还要让它更大的字体大小,因为只有这样你才能增加它的高度。

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 1970-01-01
      • 2017-01-20
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      相关资源
      最近更新 更多