2012-02-26 55 views
1

林:http://jquery.malsup.com/form/#getting-started输入型使用jQuery的AJAX文件上传= “文件” onchange事件,跨浏览器解决方案

<input type="file" id="foo" name="foo" /> 

我的问题是,jQuery的变化不会触发事件:

$('#foo').change(function(){ 
    console.log('change'); 
}); 

我也尝试过使用on('change', function(){ })方法,但没有成功。

任何帮助表示赞赏。谢谢

+0

不在哪个浏览器中启动?你看[2133807](http://stackoverflow.com/questions/2133807/alternate-to-onchange-event-in-input-type-file)? – h0tw1r3 2012-02-26 18:44:09

+0

我在Firefox中做了测试。 @Ktash我想这与插件有关 – Johan 2012-02-26 18:48:06

+0

你用这个插件完成了什么?它添加的很多功能(如'serialize')是最新jQuery中的标准功能。另外,因为我删除了我的评论,所以[测试用例]再次(http://jsfiddle.net/NnMKg/)。 – Ktash 2012-02-26 18:51:38

回答

0

它可能是你的问题出在绑定的顺序。

Here是我用来测试的jsFiddle。我已将该插件链接到此解决方案,并且似乎只有在.ajaxForm之前完成绑定后才会触发更改事件。

让我知道如果这不能解决您的问题。

+0

实际上[它可以](http://jsfiddle.net/NdVyJ/4/)(在Chrome和FF 9中测试过),但我不得不修复表单url。 – h0tw1r3 2012-02-26 21:02:37

0

试试这个。不知道它不好用.live,但对我的作品,当正常的方式dosnt

$('#foo').live('change',function(){ 
    alert('change'); 
}); 
相关问题