2016-03-16 66 views
0

我有一個HTML,當輸入已經改變,將調用javascript函數:對口這個腳本在jQuery的

<input type="file" id="file-uploaded" onchange="checkinput(this);"> 

和腳本將讀取如果輸入確實包含一個文件:

function checkinput(input) { 
    if (input.files && input.files[0]) { 
     // do something... 

然後,當我嘗試在jQuery的:

$(document).on("change", "#file-uploaded", function(){ 
    if ($(this).files && $(this).files[0]) { 
     // do something... 
    } 
}); 

這是行不通的。將第一個腳本轉換爲jQuery時,第一個腳本的正確對應方式是什麼?

回答

2

你就近了。 更改此:$(this).files這樣:$(this)[0].files

現在jQuery代碼看起來就像這樣:

$(document).on("change", "#file-uploaded", function(){ 
    if ($(this)[0].files && $(this)[0].files[0]) { 
     // do something... 
    } 
}); 
+0

你也可以使用jQuery選擇這樣$ ( 「#文件上傳」)上( 「變化」,函數(){})。另外我認爲重要的是要注意上面的工作,因爲$(this)是一個jQuery元素,但是當您添加[0]時,它會選擇html元素,而不是jquery對其的引用。 – Binvention

0

嘗試類似如下:

$("#file-uploaded").on("change", function(){ 
     if ($(this).files && $(this).files[0]) { 
      // do something... 
     } 
    });