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

时间:2012-08-08 08:36:16

标签: javascript jquery html events input

代码是:

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

6 个答案:

答案 0 :(得分:112)

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

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

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

答案 1 :(得分:10)

或者可能是:

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

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

答案 2 :(得分:4)

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

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

这是针对jQuery 1.4.4

jsFiddle

答案 3 :(得分:4)

jsfiddle对我来说很好。

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

注意:.delegate()是jQuery的最快事件绑定方法&lt; 1.7:event-binding methods

答案 4 :(得分:2)

尝试使用它:

<强> HTML:

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

<强> JavaScript的:

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

答案 5 :(得分:2)

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

你也可以使用这个