input-type=附加到onclick事件的文件
input type=file attached to an onclick event
我有一个这样的菜单:
<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>
我甚至想在Open li上附加一个onclick,它会像input type="file"
一样启动文件打开对话框。我可以处理将代码附加到li的onclick事件,但我不知道要附加什么代码。
TIA
您可以向页面添加一个普通的input type="file"
,并将其设置为隐藏样式。类似这样的东西:
<input type="file" id="theFileInput" style="display:none;" />
(对于这个例子,我只建议使用内联样式,当然,我建议将样式与标记分离。)
然后,您可以启动对它的单击,以响应目标元素上的单击事件。使用jQuery(假设您可以在li
上设置id
,或者以某种方式在选择器中唯一标识它),它将类似于:
$('#clickableLiElement').click(function() {
$('#theFileInput').click();
});
input type="file"
仍然存在,并且可以像任何其他形式元素一样与之交互。它只是对用户不可见。但这将启动"打开文件"对话框,并正常地将其值设置为元素,该元素可以正常地包含在到服务器的POST中。
With JavaScript
<input type="file" accept="images/*" name="images" id="images" onClick="showModal()" style="display:none"/>
<script>
function showModal(){
document.getElementById('images').click();
}
</script>
<li onClick="showModal()"></li>
上面的答案(David)有效,但在您的css文件中,您需要执行以下操作:
opacity: 0;
-moz-opacity: 0;
filter:alpha(opacity=0);
display:none
解决方案不适用于Chrome或Safari。
相关文章:
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 通过将文件上载到ASHX处理程序来实现SSE(服务器发送的事件)
- 在javascript中导入xlsx文件时,如何手动强制javascript事件
- Dropzone最大文件大小超过事件
- 选择同一文件时未触发HTML输入文件选择事件
- 如何在 iPhone 上打开启用了 CSS 事件的 HTML 文件
- 如何在jQuery中处理输入类型=文件的onchange事件
- XHTML文件头部分中的事件驱动函数
- 触发AngularJS中的输入文件点击事件
- 如何调用另一个js文件中的函数或触发一个自定义事件,该事件将参数作为Jquery中的数据对象传递
- 根据文件类型取消绑定和重新绑定click事件处理程序
- 如何从加载的JSON文件构建外部事件列表
- 如何在jquery/JavaScript中打开浏览文件对话框时执行取消事件
- 从驱动器打开文件时未调用Onfileloaded事件
- JQuery多文件事件未激发
- 如何查找jquery或javascript事件从哪个文件发生
- 如何在javascript中从ondrop事件中获取文件URL
- 如何在动态插入的html文件中使用onload事件
- 为什么在文件输入上触发点击事件也会在表单上触发提交事件