Javascript如果条件总是评估为false

时间:2009-11-25 16:04:03

标签: asp.net javascript

我有一个javascript函数,其目的是获取浏览的文件数。

该函数获取值len并根据该值检查某些条件。除此之外,我正在尝试检索四个文件上传控件的ID。

 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";
 }

该功能不会出现任何错误但无法正常工作。 假设len == 7l == 3,它应该调用uploo.aspx,而是显示警报消息。

为什么if(len==7 && l<=3)在这种情况下没有评估true

4 个答案:

答案 0 :(得分:0)

看起来你正在为已经存在的工具做一些额外的工作。 试试uploadify。我相信您可以设置可以上传的文件数量的限制,以及限制可以上传的文件类型。他们也可以一次上传多个文件。

答案 1 :(得分:0)

为了理智,我首先在var myCars行的末尾添加缺少的分号。在某些IE浏览器中,如果你缺少那些分号,它们会以奇怪的方式窒息。

如果所有四个变量fu1-4都有值,那么变量l将为4,您没有明确检查,哪些将落到alert()错误情况(假设len > 6)。

我会自由地添加一些调试跟踪器输出 - 例如在for循环后添加alert('l=' + l ', and len=' + len)

答案 2 :(得分:0)

尝试使用if(myCars[i].value)而不是检查null - value是一个字符串,即使是空字符串也是不等的null。

答案 3 :(得分:0)

您可以使用firebug检查值:

console.log(l);

如果你把它放在开关中,你应该看到firebug控制台中使用的值。