2009-11-25 45 views
0

我有一个JavaScript函数,其目的是获取浏览的文件数量。Javascript如果条件总是评估为false

该函数获取值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

+0

是len的数字或字符串的类型? – joerage 2009-11-25 16:08:14

+0

你可以发送电话alertMe - 我想看看什么是通过len。 – adamcodes 2009-11-25 16:09:43

+0

它的一个数字,但我已经通过它像len.ToString(); – Mishigen 2009-11-25 16:11:26

回答

0

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

+0

实际上没有文件用户上传存储在gridview ,,我试图限制我的行数在grdiview而不是在上传的文件 – Mishigen 2009-11-25 16:16:35

0

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

如果fu1-4有值的增值经销商,所有四个,那么您的变量l将是4,你不显式检查,并且将始终陷入alert()错误的情况下(假设len > 6)。

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

0

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

0

您可以使用Firebug检查值:

console.log(l); 

如果你把这个开关中你应该ALBE地看到,在Firebug控制台所使用的值。