2010-07-12 133 views
1

這是一個微不足道的問題,但由於某種原因,我遇到了問題。文件上傳表單字段驗證

我有HTML上傳文件,如下所示。

<input type="file" name="settings"> 

而我所需要做的就是檢查表單是否被提交,選擇了一個值。 我不需要幫助的表單提交代碼,我只需要幫助,因爲我猜 你無法驗證這一點,因爲你會像其他表單輸入字段,如文本框。

我試圖做這樣的事情...
var file = document.getElementById('settings').value;
if(file.length > 0 == false){
//give error messsage here

我知道,應該有這樣的一個簡單的辦法,但我不很明白。

感謝

+0

你要求由ID的元素。你的元素沒有ID。 – theraccoonbear 2010-07-12 23:36:49

回答

3
<input type="file" name="field_name" onchange="validate_file_format('field_name','allowed file format as comma separeated')"/> 

Ex: 
<input type="file" name="sitemap_doc" onchange="validate_file_format('sitemap_doc','doc,pdf')"/> 


JS Code: 
====== 
function validate_file_format(field_name, allowed_ext){ 
    obj1=document.req_form; 
    var temp_field= 'obj1.'+field_name+'.value'; 
    field_value=eval(temp_field); 
    if(field_value!=""){ 
     var file_ext= (field_value.substring((field_value.lastIndexOf('.')+1)).toLowerCase()); 
     ext=allowed_ext.split(','); 
     var allow=0; 
     for (var i=0; i < ext.length; i++) { 
       if(ext[i]==file_ext){ 
        allow=1; 
       } 
     } 
     if(!allow){ 
      alert('Invalid File format. Please upload file in '+allowed_ext+' format');   
      return false; 
     } 
    } 
    return false; 
} 
1

你需要給代碼值「設置」 id屬性。你有一個奇怪的建築。

如果(file.length < = 0){//錯誤信息 }

3

我不明白爲什麼這是行不通的 - 只要你給輸入自己的ID:

<input type="file" name="settings" id="settings"> 
2

大約只是在做什麼:

<input type="file" name="settings" id="settings">