为什么我的功能没有显示文件扩展名?

时间:2014-08-08 12:00:16

标签: javascript jquery function validation

我正在尝试使用javascript在上传期间创建一个验证文件的功能,我已经完成了,一切正常但工作正常但它没有显示警报中的扩展名(我想显示文件扩展名是警报),谁能让我知道问题在哪里?我现在已成功验证大小,我想验证扩展名。

的Javascript

function showFileSize() {
 var rt = true;
    if (!window.FileReader) {
        bodyAppend("p", "The file API isn't supported on this browser yet.");
        rt = false;
    }

   inputs = document.getElementsByTagName('input');

   for(var ind=0;ind<inputs.length;ind++){
        var sFileName = inputs.item(ind).files[0].name;
        var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1].toLowerCase();
     if(inputs.item(ind).type=='file'){
        if(!inputs.item(ind).files[0]){
         alert("Please select  file "+(ind+1)+" before clicking 'Load'");
         rt = false;
         }else if(inputs.item(ind).files[0].size>6000000){
            console.log(inputs.item(ind).files[0].size);
            alert("File size should be less then 6MB!"+sFileExtension);
            rt = false;
            }

        }  
   }
//If Function True 
if(rt == true){
     doForm(
            '{var name=form_controller}', 
            'manageForm',
            '1',
            0, 
            0, 
            1);
    }


}

2 个答案:

答案 0 :(得分:0)

首先检查sFileName是否有预期值(例如alert(sFileName);)。

然后将扩展名拆分更改为:

var sFileExtension = sFileName.split('.').pop().toLowerCase();

答案 1 :(得分:-1)

尝试将代码更改为:

var sFileExtension = sFileName.split('.');
console.log(sFileExtension); //make sure it generates the right array
sFileExtension = sFileExtension[sFileExtension.length - 1].toLowerCase();
alert(sFileExtension);

获取数组的最后一个元素的另一种方法是使用.pop(),就像这样

var sFileExtension = sFileName.split('.').pop().toLowerCase();
alert(sFileExtension);