2009-11-25 9 views
0

J'ai une fonction javascript dont le but est d'obtenir le nombre de fichiers visionnées.Javascript si la condition d'évaluer toujours faux

La fonction obtient une valeur len et basée sur cette valeur, vérifie certaines conditions. En plus de cela, j'essaie de récupérer les ID de quatre contrôles de téléchargement de fichiers.

function alertMe(len) 
{ 
    var fu1 = document.getElementById("FileUpload1"); 
    var fu2 = document.getElementById("FileUpload2"); 
    var fu3 = document.getElementById("FileUpload3"); 
    var fu4 = document.getElementById("FileUpload4"); 
    var myCars=new Array(fu1,fu2,fu3,fu4) 
    var l=0; 
    for(var i=0;i<myCars.length;i++) 
    { 
     if(myCars[i].value!=null) 
      l++; 
    } 
    if(len>6) 
    { 
     if(len==7 && l<=3) 
      window.location="uploo.aspx"; 
     else if(len==8 && l<=2) 
      window.location="uploo.aspx"; 
     else if(len==9 && l<=1) 
      window.location="uploo.aspx"; 
     else 
      alert("you cant keep more than 10 files in your table,,delete some files first and then upload"); 
     return false; 
    } 
    else 
     window.location="uploo.aspx"; 
} 

La fonction ne donne aucune erreur mais ne fonctionne pas correctement. Supposons len == 7 et l == 3, il devrait appeler uploo.aspx, mais il me montre les messages d'alerte.

Pourquoi le if(len==7 && l<=3) n'évalue-t-il pas à true dans ce cas?

+0

Le type de len est-il un nombre ou une chaîne? – joerage

+0

pourriez-vous poster l'appel à alertMe - Je veux voir ce qui est passé pour len. – adamcodes

+0

c'est un nombre mais je l'ai passé comme len.ToString(); – Mishigen

Répondre

0

Il semble que vous faites un tas de travail supplémentaire pour les outils qui sont déjà là-bas. Essayez le uploadify. Je crois que vous pouvez définir une limite pour le nombre de fichiers qui peuvent être téléchargés, ainsi que limiter les types de fichiers qui peuvent être téléchargés. Ils peuvent également télécharger plusieurs fichiers à la fois.

+0

en fait le pas de fichiers utilisateur télécharge sont stockés dans un gridview ,, et je suis en train de limiter mon nombre de lignes dans grdiview et non pas sur les fichiers téléchargés – Mishigen

0

Par souci de bon sens, je commencerais en ajoutant le point-virgule manquant à la fin de votre ligne var myCars. Dans certains navigateurs IE, ils s'étoufferont étrangement si ces points-virgules vous manquent.

Si les quatre vars fu1-4 ont des valeurs, alors votre variable l va être 4, que vous ne cochez pas explicitement, et qui atterriront dans le cas d'erreur alert() (en supposant len > 6).

J'ajouterais libéralement plus de sortie de traceur de débogage - ajouter un alert('l=' + l ', and len=' + len) après votre boucle for, par exemple.

0

essayez d'utiliser if(myCars[i].value) au lieu de vérifier null - valeur est une chaîne et même une chaîne vide est nulle nulle.

0

Vous pouvez vérifier les valeurs à l'aide Firebug:

console.log(l); 

Si vous mettez cela dans le commutateur, vous devriez être albe pour voir les valeurs qui sont utilisées dans la console Firebug.