2011-01-11 40 views
1

我有以下:for循環,以檢查是否選擇了框

for(var i:Number = 1; i <= 10; i++) { 
if (eval("chk"+i).selected == false) { 
    btnSubmit.enabled = false; 
    } else { 
    btnSubmit.enabled = true; 
    } 
} 

我有10盒。如果任何人被選中,那麼我啓用表單提交按鈕。出於某種原因,上述代碼僅適用於第10項。任何想法爲什麼?

回答

2

您正在依次遍歷每個複選框,並設置提交按鈕以啓用該複選框,;如果不是,則將其禁用。

這意味着最後一個複選框是唯一重要的複選框,因爲每個複選框都會撤銷前一個複選框的操作。

試試這個:

btnSubmit.enabled = false; 
for(var i:Number = 1; i <= 10; i++) { 
    if (eval("chk"+i).selected == true) { 
     btnSubmit.enabled = true; 
    } 
} 

現在你設置的按鈕被禁用,然後只設置如有複選框選中它啓用。

+1

我會補充說,你應該改變'eval'語句。 '這['chk'+ i] .selected'應該用在它的位置上。 – sberry

+0

這[[chk'+ i] .selected由於某種原因不起作用。 – CFNinja

0

在btnSubmit.enabled = true之後添加一個break語句以立即停止循環。小事在這種情況下....但是...

+0

謝謝,我添加了一個break語句。 – CFNinja

相關問題