触发点击输入文件
我有这个标记
和jQuery如下
jQuery(function($){ $('#capture').on('click', function(e){ e.preventDefault(); $('#file').trigger('click'); }); });
该脚本在PC浏览器上按预期工作,但是当我在移动设备上尝试时,相机不会提示。 我也尝试过使用click()
,但结果相同。
可能是什么问题呢?
这是一个安全function。 某些浏览器不允许手动点击输入类型文件。 你可以在这里和这里阅读更多相关信息。
为什么不能以编程方式触发文件输入选择?
大多数浏览器阻止在输入字段未收到直接点击(或键盘)事件时提交文件作为安全预防措施。 某些浏览器(例如谷歌浏览器)只是阻止点击事件,而例如Internet Explorer不提交由编程触发的文件输入字段选择的任何文件。 到目前为止,Firefox 4(及更高版本)是唯一一个完全支持在完全隐藏(display:none)文件输入字段上调用“click”-Events的浏览器。
在大多数浏览器中
jQuery(function($){ $('#capture').on('click', function(e){ e.preventDefault(); $('#file')[0].click(); }); });