如何在jQuery中处理input type = file的onchange事件?

代码是:

<input ID="fileUpload1" runat="server" type="file" 

以下工作正常:

 <input onchange="javascript:alert('hola');" ID="fileUpload1" runat="server" type="file" 

我想使用jQuery得到这个结果,但是这不起作用:

 $('#fileUpload1').change(function (e) { alert("hola"); }); 

我错过了什么? (编辑:是的,我错过了包括* .js文件。)

演示: http : //jsfiddle.net/NbGBj/

 $("document").ready(function(){ $("#upload").change(function() { alert('changed!'); }); }); 

或者可以是:

 $('input[type=file]').change(function () { alert("hola"); }); 

具体来说: $('input[type=file]#fileUpload1').change(...

它应该可以正常工作,你是否在$(document).ready()调用中包装代码? 如果不使用,或使用live ie

 $('#fileupload1').live('change', function(){ alert("hola"); }); 

这是一个jsFiddle的工作与jQuery 1.4.4

这个jsfiddle对我来说工作得很好。

 $(document).delegate(':file', 'change', function() { console.log(this); }); 

注意:.delegate()是jQuery <1.7: 事件绑定方法中最快的事件绑定方法

  $('#fileupload').bind('change', function (e) { //dynamic property binding alert('hello');// message you want to display }); 

你也可以使用这个

尝试使用这个:

HTML:

 <input ID="fileUpload1" runat="server" type="file"> 

JavaScript的:

 $("#fileUpload1").on('change',function() { alert('Works!!'); });