2012-08-08 16 views
40

的代碼是:如何在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文件)。

+1

元素的ID是' 「fileUpload1」''沒有 「fileupload1」'。你是否也在元素存在之後運行你的代碼,並且你包含了jQuery等?同時檢查您的瀏覽器控制檯是否有javascript錯誤 – Esailija 2012-08-08 08:40:13

+0

我搜索了類似的關鍵字,但我在尋找「沒有jQuery」版本... – 2016-10-14 05:30:55

回答

2

嘗試使用此:

HTML:

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

的JavaScript:

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

+2

錯誤的事件和錯誤的ID。 – Esailija 2012-08-08 08:41:32

+0

對不起,我沒有正確地看到問題...現在檢查@Esailija – 2012-08-08 08:54:29

4

它應該w奧克罰款,你打電話給$(document).ready()電話的代碼?如果不使用或使用live

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

下面是這個工作的jsFiddle反對的jQuery 1.4.4

+3

住不用了,現在應該使用()現在 – Simon 2012-08-08 08:42:10

+1

他使用的v1.4.4不支持'on()' – Chris 2012-08-08 08:47:34

+3

'live'是已棄用所有jQuery版本,請使用'.delegate' – Esailija 2012-08-08 08:49:33

3

jsfiddle工作正常,我。

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

注:.delegate()是jQuery的< 1.7最快的事件結合方法:event-binding methods

+0

1.4.4。 Dosent'工作。 – anmarti 2012-08-08 08:46:18

+0

更新了我的答案 – Simon 2012-08-08 08:55:45

8

或者可能是:

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

具體到:$('input[type=file]#fileUpload1').change(...

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

您可以使用這其中也

相關問題