输入类型=文件单击未通过jQuery触发


<div style="visibility:hidden;"><input type="file" name="photo" id="photo" /></div>
$('#photo').trigger('change');
$('#photo').change(function(e) {
  alert("change fun");
});

但是警报没有显示,我的意思是根本不会触发更改。我的问题是如何在不实际浏览文件的情况下从 jquery 触发更改 $().trigger('change')合适吧?

看到你必须正确堆叠事件,我的意思是:

  1. 首先,您创建在您的案例中change的事件
  2. 然后在它触发事件之后,它将起作用

请按如下方式操作:

$('#photo').change(function(e) { // change event created
  alert("change fun");
});
$('#photo').trigger('change'); // then trigger

尽管您可以使用.on()方法绑定多个事件:

$('#photo').on('change click', function(e) { // change event created
  alert("change fun");
});
$('#photo').trigger('change'); // Here you can trigger either "change" or "click"

注意:

您触发了错误的事件,并且在错误的位置。您只需要先应用事件,然后才能触发该事件。

试试这个:

 $(document).ready(function(){
    // if you want file change event try this
    $('#photo').on('change', function(e){
         alert('change function');
    });
    // Or if you want click event try this
    $('#photo').on('click', function(e){
         alert('click function');
    });
 });

这是演示

演示

在更改函数中使用触发器事件

$('#photo').change(function(e) {
$(this).trigger('click');
  alert("change fun");
});

最新更新