2010-07-12 5 views
1

Cette question est triviale, mais pour une raison ou pour une autre, j'ai des problèmes.Validation du champ de formulaire de téléchargement de fichier

J'ai HTML pour télécharger un fichier comme celui-ci.

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

Et tout ce que j'ai besoin de faire est de vérifier quand le formulaire est soumis qu'une valeur a été sélectionnée. Je n'ai pas besoin d'aide avec le code pour la soumission de formulaire, j'ai juste besoin d'aide puisque je devine que vous ne pouvez pas valider comme vous le feriez d'autres champs de saisie de formulaire tels que les zones de texte.

J'ai essayé de faire des choses comme ...
var file = document.getElementById('settings').value;
if(file.length > 0 == false){
//give error messsage here

Je sais qu'il devrait y avoir une solution facile pour cela, mais je ne peux pas comprendre tout à fait dehors.

Merci

+0

vous demandez un élément par ID. votre élément n'a pas d'identifiant. – theraccoonbear

Répondre

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

Vous devez donner le code d'un attribut id avec la valeur "paramètres". Vous avez un étrange si la construction.

si (file.length < = 0) {// message d'erreur }

3

Je ne vois pas pourquoi cela ne fonctionne pas - aussi longtemps que vous donnez l'entrée d'un identifiant:

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

Qu'en est-il juste faire:

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