Javascript 如何单击<;按钮>;元素来触发文件浏览?

Javascript 如何单击<;按钮>;元素来触发文件浏览?,javascript,css,Javascript,Css,我需要一个元素,单击该元素将触发文件浏览(即的单击事件)。有没有一种方法可以在不影响按钮外观的情况下实现这一点?您不必依赖css/html,只需将输入样式设置为与按钮匹配即可 >代码>类型=文件< /C>是唯一的,并且不能模仿它看起来像一个按钮(因为按钮在中间使用文本,并且没有类型参数)。如果您确实需要这样做,可以使用javascript或css使其看起来像一个按钮(隐藏路径) Chrome仅适用于此项。您可以将输入样式设置为与按钮匹配,而不必依赖css/html >代码>类型=文件< /C

我需要一个
元素,单击该元素将触发文件浏览(即
的单击事件)。有没有一种方法可以在不影响按钮外观的情况下实现这一点?

您不必依赖css/html,只需将输入样式设置为与按钮匹配即可

<> >代码>类型=文件< /C>是唯一的,并且不能模仿它看起来像一个按钮(因为按钮在中间使用文本,并且没有类型参数)。如果您确实需要这样做,可以使用javascript或css使其看起来像一个按钮(隐藏路径)


Chrome仅适用于此项。

您可以将输入样式设置为与按钮匹配,而不必依赖css/html

<> >代码>类型=文件< /C>是唯一的,并且不能模仿它看起来像一个按钮(因为按钮在中间使用文本,并且没有类型参数)。如果您确实需要这样做,可以使用javascript或css使其看起来像一个按钮(隐藏路径)


Chrome仅适用于此版本。

您可以手动触发文件输入上的单击事件

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

示例:

您可以手动触发文件输入上的单击事件

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


示例:

为什么这是被否决的,因为cyring outloud?!可能重复的@bvukelic得到了一个分数。当你否决一个帖子时,如果能给出理由,我将不胜感激。否则,否决权就成了阻止人们提问的工具,而这本应该是一种建设性的手段,让社区提出更好的问题。为什么否决权会被否决,因为cyring outloud?!可能重复的@bvukelic得到了一个分数。当你否决一个帖子时,如果能给出理由,我将不胜感激。否则,向下投票就成了一种阻止人们提问的工具,而这实际上应该是一种建设性的手段,让社区提出更好的问题。我需要使用我自己设计的按钮,所以这在我的情况下并不起作用。谢谢。@tamakisquare:也非常有效的用例。@bvukelic-谢谢提醒。我忽略了
按钮可以设计的部分。@tamakisquare:是吗?我不知道。当然在FF中对我不起作用。@bvukelic您不能在firefox中更改宽度,但您可以更改高度和其他一些属性,我剪切输入文本,只显示浏览按钮(仅限firefox)。只是为了演示的目的。我需要使用我自己的样式按钮,所以这在我的情况下不起作用。谢谢。@tamakisquare:也非常有效的用例。@bvukelic-谢谢提醒。我忽略了
按钮可以设计的部分。@tamakisquare:是吗?我不知道。当然在FF中对我不起作用。@bvukelic您不能在firefox中更改宽度,但您可以更改高度和其他一些属性,我剪切输入文本,只显示浏览按钮(仅限firefox)。只是为了演示。不错,我没想到。向上投dat dislay一票:无!有趣的这是否适用于主流浏览器?我很好奇,这个解决方案是否如此简单明了,为什么我在互联网上发现了这么多html/css黑客,使用带有按钮式背景图像的
,以及带有
不透明性的
:0
?@tamakisquare:应该有效。我已经在FF和Chrome上进行了测试,他们都很高兴。没有访问IE atm的权限。至于为什么会有黑客,我不明白。也许这不是一个常见的过程。是的,有时候,开发人员往往会过度思考这个问题。:)这确实很有趣。我记得我以前无法通过编程方式调用Chrome中
元素的
click()
,但现在我可以了!我必须说,世界变化太快了。让我在自己的代码中尝试一下。谢谢,不错,我没想到。向上投dat dislay一票:无!有趣的这是否适用于主流浏览器?我很好奇,这个解决方案是否如此简单明了,为什么我在互联网上发现了这么多html/css黑客,使用带有按钮式背景图像的
,以及带有
不透明性的
:0
?@tamakisquare:应该有效。我已经在FF和Chrome上进行了测试,他们都很高兴。没有访问IE atm的权限。至于为什么会有黑客,我不明白。也许这不是一个常见的过程。是的,有时候,开发人员往往会过度思考这个问题。:)这确实很有趣。我记得我以前无法通过编程方式调用Chrome中
元素的
click()
,但现在我可以了!我必须说,世界变化太快了。让我在自己的代码中尝试一下。谢谢