输入类型=附加到 onclick 事件的文件
我有一个像这样的菜单:
<ul class="sub">
<li><a href="#">New</a></li>
<li><a href="#">Open</a></li>
<li><a href="#">Save</a></li>
<li><a href="#">Help</a></li>
</ul>
并且我想将 onclick 附加到 Open li 上,这将启动文件打开对话框,就像 input type="file"
所做的那样。我可以处理将代码附加到 li 的 onclick 事件,但我不知道要附加什么代码。
TIA
I have a menu like this:
<ul class="sub">
<li><a href="#">New</a></li>
<li><a href="#">Open</a></li>
<li><a href="#">Save</a></li>
<li><a href="#">Help</a></li>
</ul>
and I'd like to attach an onclick even to the Open li that would kick off a file open dialog, like input type="file"
does. I can handle attaching code to the li's onclick event, but I don't know what code to attach.
TIA
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以将普通的
input type="file"
添加到页面并将其设置为隐藏。像这样的东西:(本示例仅使用内联样式,当然我建议将样式与标记分开。)
然后您可以启动对其的单击以响应目标元素上的单击事件。 它会类似于:
使用 jQuery(假设您可以在
li
上设置id
,或者以某种方式在选择器中唯一标识它) , type="file" 仍然存在,并且可以像任何其他表单元素一样进行交互。它对用户来说只是不可见的。但这将启动“打开文件”对话框并正常将其值设置为该元素,该元素可以正常包含在到服务器的 POST 中。You can add a normal
input type="file"
to the page and style it to be hidden. Something like this:(Only using in-line styling for this example, I recommend separating the style from the markup of course.)
Then you can initiate a click on it in response to a click event on the target element. With jQuery (assuming you can set an
id
on theli
, or otherwise uniquely identify it in the selector in some way) it would be something like:The
input type="file"
is still there and can be interacted with just like any other form element. It's just invisible to the user. But this would launch the Open File dialog and set its value to the element normally, which can be included in the POST to the server normally.上面的答案(David)有效,但在您的 css 文件中,您需要执行以下操作:
display:none
解决方案不适用于 Chrome 或 Safari。The answer above (David) works, but in your css file you need to do:
The
display:none
solution is not working with Chrome or Safari.