2011-08-16 244 views
0

我有代碼來查看是否有任何複選框被選中,它的工作。這裏是我很喜歡的地方,看到沒有人被檢查,檢查後我希望有一個DIV顯示(隱藏/顯示我猜)somwhere,如果任何一個框被選中,它會消失。基於複選框顯示/隱藏


function checkBoxValidate(cb) { 
for (j = 0; j < 8; j++) { 
if (eval("document.myform.checkbox[" + j + "].checked") = false) { 
document.views.checkbox[j].checked = false; 
     } 
    } 
} 

---------- 


<form name="myform"> 
         <input class="checkbox" name="1" type="checkbox" value="check_1" onclick="document.getElementById('r-click').innerHTML = '1;" id="click"> 
         1 
         <input class="checkbox" name="2" type="checkbox" value="check_2" onclick="document.getElementById('s-click').innerHTML = '2';" id="click"> 
         2 
        </form> 

<div id=showInstructions>Check boxes</div> 

謝謝!的代碼添加到原始代碼

+1

我想你的意思是與「假」(==)比較,而不是分配(=)。爲什麼在這裏使用eval? – Li0liQ

回答

0

添加了幾行字來證明:

(順便說一句,整個「EVAL」的事情是有點亂,可以寫簡單得多...)

function checkBoxValidate(cb) { 
var somethingIsChecked = false; 
for (j = 0; j < 8; j++) { 
if (eval("document.myform.checkbox[" + j + "].checked") = false) { 
    document.views.checkbox[j].checked = false; 
} 
else { 
    somethingIsChecked = true; 
} 

if (somethingIsChecked) 
    document.getElementById("showInstructions").style.display = "block"; 
else 
    document.getElementById("showInstructions").style.display = "none"; 
+0

沒有很好的理由,我只是在學習(重新評估'eval')。你介意讓我看看它會更乾淨嗎? – user894514

0
function checkBoxValidate(cb) { 
    var noneChecked = true; 
    for (j = 0; j < 8; j++) { 
     if (eval("document.myform.checkbox[" + j + "].checked") == false) { 
      document.views.checkbox[j].checked = false; 
     } else { 
      noneChecked = false; 
     } 
    } 
    document.getElementById("showInstructions").style.display = noneChecked ? "block" : "none"; 
}