2009-11-25 70 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控制檯所使用的值。