2017-05-07 80 views
1

我有一個HTML表單,其輸入字段的類型爲'file',ID爲'fdata'。 輸入和文件上傳在Chrome和Firefox上均可正常工作。從HTML'文件'輸入中提取文件名:Chrome與Firefox

但是,我還需要在我的javascript代碼中使用上傳的文件名稱作爲其他目的。我用下面的一行:

var filename = $('#fdata').get(0).files[0].name; 

這適用於Chrome很好,但它給出了在Firefox以下錯誤:

TypeError: $(...).get(...).files[0] is undefined 

這也失敗了,當我用$('#fdata')[0].files[0].name ...難道我這樣做錯誤的方法?如果是這樣,什麼是正確的方式..?

+1

你說你有一個名爲'fdata'輸入但是你用ID使用'fdata'?請編輯你的帖子,以包括[mcve] – yezzz

回答

1

即使在選擇文件之前嘗試訪問文件名時也會出現該錯誤。 您可以通過使用

if($('#fdata').get(0).files.length){ 
    var filename = $('#fdata').get(0).files[0].name; 
}else{ 
    alert("No file selected"); 
} 

我試圖重現同一個對我現有的代碼,一個避免這一點,並得到了這個,enter image description here

+0

哦,我的上帝,我覺得很愚蠢。 我在Firefox上的測試用例與Chrome上的測試用例不同,在選擇文件之前確實運行了該功能。 謝謝,併爲浪費你的時間道歉! –