2017-05-07 57 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上的测试用例不同,在选择文件之前确实运行了该功能。 谢谢,并为浪费你的时间道歉! –