2011-09-29 38 views
0

我不知道很多關於編碼和我需要建立這種形式的用3米不同的區域/ div的(A,B,C),其中:3複選框表示同一div(顯示:無)

- 總是示出,控制B和C顯示

- 如果對一個複選框4中選擇

所示 - 如果在複選框1,2和/或3被選中

ç所示

所以,我到達了迄今爲止是:

<head> 
<script type="text/javascript"> 
<!-- 
function showMe (it, box) { 
    var vis = (box.checked) ? "block" : "none"; 
    document.getElementById(it).style.display = vis; 
} 
//--> 
</script> 
</head> 

<body> 
<form> 
<input type="checkbox" value="value1" onclick="showMe('div1', this)" />value1 
<input type="checkbox" value="value2" onclick="showMe('div1', this)" />value2 
<input type="checkbox" value="value3" onclick="showMe('div1', this)" />value3 
<input type="checkbox" value="value4" onclick="showMe('div2', this)" />value3 
</form> 

<div id="div1" style="display:none;">Show Div 1</div> 
<div id="div2" style="display:none;">Show Div 2</div> 

</body> 

的事情是,如果我檢查1,2和/或3,分區B正常顯示,但如果我取消其中之一,DIV乙隱藏。我需要div B來顯示他們其中一個被檢查。

爲每個複選框分配不同的div將不起作用,因爲所有複選框都「激活」了相同的表單區域(div)。

任何建議嗎?

回答

1

現在,您的事件處理程序僅考慮導致該事件的複選框。它真正需要做的是輪詢三個複選框中的每一個,以查看它們中的任何一個是否在事件發生時被檢查。

所以它是有道理的,以在事件處理保持邏輯:

<head> 
<script type="text/javascript"> 
<!-- 
function updateVis() { 
    var show1 = 
     (document.theForm.input1.checked) 
     || (document.theForm.input2.checked) 
     || (document.theForm.input3.checked) ? "block" : "none"; 
    document.getElementById("div1").style.display = show1; 

    var show2 = (document.theForm.input4.checked) ? "block" : "none"; 
    document.getElementById("div2").style.display = show2; 
} 
//--> 
</script> 
</head> 

<body> 
<form name="theForm"> 
<input name="input1" type="checkbox" value="value1" onclick="updateVis()" />value1 
<input name="input2" type="checkbox" value="value2" onclick="updateVis()" />value2 
<input name="input3" type="checkbox" value="value3" onclick="updateVis()" />value3 
<input name="input4" type="checkbox" value="value4" onclick="updateVis()" />value3 
</form> 

<div id="div1" style="display:none;">Show Div 1</div> 
<div id="div2" style="display:none;">Show Div 2</div> 

</body> 
+0

YES!它的作品非常漂亮!我提到我愛你嗎? = D很多非常感謝! – user971875