触发点击输入文件

我有这个标记

 

和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(); }); }); 
   
  
OR HERE