48

代码是:

<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 文件。)

4

6 回答 6

119

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

$("document").ready(function(){

    $("#upload").change(function() {
        alert('changed!');
    });
});
于 2012-08-08T08:42:17.557 回答
12

或者可以是:

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

再具体一点:$('input[type=file]#fileUpload1').change(...

于 2012-08-08T08:42:35.220 回答
4

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

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

这是一个针对 jQuery 1.4.4的jsFiddle

于 2012-08-08T08:39:51.560 回答
4

这个jsfiddle对我来说很好用。

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

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

于 2012-08-08T08:41:09.850 回答
2

尝试使用这个:

HTML:

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

JavaScript:

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

​</p>

于 2012-08-08T08:38:59.663 回答
2
 $('#fileupload').bind('change', function (e) { //dynamic property binding
alert('hello');// message you want to display
});

你也可以用这个

于 2015-02-02T09:56:17.047 回答