2014-09-19 63 views
0

我正在構建一個驗證器文件,我有一個比較擴展從某種原因的問題,我想要做的是在HTML中定義數據屬性調用數據extntions,允許在當前文件輸入到使用extansions,這是我運行代碼:jquery/javascript文件驗證2字符串compration(文件擴展名)失敗

case "file" : 
    var allowed_files_extansions = $(this).data("extensions") 
    var is_valid = Validator.is_file(current_value , allowed_files_extansions); 
    if(!is_valid){ 
    Validator.errors_handler(Validator.invalid_text , field_human_name , $(this)); 
    is_submit = false; 
    return false; 
    }else{ 
    is_submit = true; 
    } 
    break; 

is_file : function(file_value , allowed_files_extansions){ 
    file_extension = file_value.split('.').pop(); 
    allowed_files_extansions = allowed_files_extansions.split(','); 
    for(i=0;i<allowed_files_extansions.length;i++){ 
    if(file_extension == allowed_files_extansions[i]){ 
     return true; 
    } 
    } 
    return false; 
} 

的HTML代碼:

<input class="form-control deal" data-extensions=" jpg , png , gif , JPG " id="image_file" data-title="file" data-validate="file" type="file" name="userfile" /> 

當我上傳文件和console.log var file_extensionvar allowed_files_extansions[i]我得到t他完全相同的字符串,它們的類型都是字符串,它仍然沒有進入if語句。

有人可以幫我嗎?非常感謝:)

回答

0

問題是,你的數據擴展屬性中有空格。

變化

data-extensions=" jpg , png , gif , JPG " 

data-extensions="jpg,png,gif,JPG" 

allowed_files_extansions[i]

使用String.trim()此外..看來你正試圖重新發明輪子。 查看accept屬性,查看input[type=file]

<input type="file" accept="image/gif,image/jpeg,image/png" /> 
+0

謝謝你有很多不同的伴侶。關於接受屬性 - 我希望它至少在ie8中消失 – benjah 2014-09-20 10:11:45