我在页面顶部有4个复选框,并且有4个相应的div元素。如果选中相应的复选框,则需要显示div,并隐藏其他div。我已经实现了这一目标,但无法正确定位它们。
例如,如果我选择第3个复选框,则应在顶部显示与第3个复选框对应的div。然后,如果我选择第一个复选框,则应首先显示对应于第一个复选框的div,然后是对应于第三个复选框的div。然后,如果我选择第二个复选框,则应在第一个和第三个div之间显示第二个div。
隐藏功能正常。但是关于div的位置,第3个div将显示在第3个位置(意味着页面顶部有一个空格,对应于前两个div)。下面是我使用的html文件和java脚本:
<html>
<head>
<title>Checkbox Event Handler</title>
<script type="text/javascript">
function toggle(chkbox, group) {
var visSetting = (chkbox.checked) ? "visible" : "hidden";
document.getElementById(group).style.visibility = visSetting;
document.getElementById(group).style.position = absolute;
}
function hideLayer() {
document.getElementById('myGroup1').style.visibility = 'hidden';
document.getElementById('myGroup2').style.visibility = 'hidden';
document.getElementById('myGroup3').style.visibility = 'hidden';
document.getElementById('myGroup4').style.visibility = 'hidden';
}
</script>
</head>
<body onload="hideLayer();">
<form>
<input type="checkbox" name="section1" onclick="toggle(this, 'myGroup1')" />Section1
<input type="checkbox" name="section2" onclick="toggle(this, 'myGroup2')" />Section2
<input type="checkbox" name="section2" onclick="toggle(this, 'myGroup3')" />Section3
<input type="checkbox" name="section2" onclick="toggle(this, 'myGroup4')" />Section4
<div id="myGroup1" >
<table >
<tr><td>ID </td><td><input type="text" name ="tid" id="tid" size="20"></input></td></tr>
<tr><td>Name </td><td><input type="text" name = "tname" id="tname" size="20"></td></tr>
<tr><td>Height </td><td><input type="text" name = "theight" id="theight" size="20"></td></tr>
<tr><td>Location </td><td><input type="text" name = "tloc" id="tloc" size="20"></td></tr>
</table>
</div>
<div id="myGroup2" >
<table>
<tr><td><input type="button" name ="B1" id="B1" value="SomeName" ></td>
<td><input type="button" name ="B2" id="B2" value="Retrieve" >
<input type="button" name ="B3" id="B3" value="Retrieve All" >
<input type="button" name ="B4" id="B4" value="Load Data" >
</td></tr>
</table>
</div>
<div id="myGroup3">
<table >
<tr><td>City </td><td><input type="text" name = "tcity" id="tcity" size="20"></td></tr>
<tr><td>State </td><td><input type="text" name = "tstate" id="tstate" size="20"></td></tr>
<tr><td>Country </td><td><input type="text" name = "tcountry" id="tcountry" size="20"></td></tr>
</table>
</div>
<div id="myGroup4">
<table>
<tr><td><input type="button" name = "B4" id="B4" value="SomeButton" ></td>
<td><input type="button" name ="B5" id="B5" value="Store" >
<input type="button" name ="B6" id="B6" value="Clear All" >
<input type="submit" name ="B7" id="B7" value="Submit"></td></tr>
</table>
</div>
</form>
</body>
</html>
我使用“document.getElementById(group).style.position = absolute”来设置位置但不确定如何使用它。请帮忙......
答案 0 :(得分:2)
答案 1 :(得分:0)
更改
document.getElementById('myGroup1').style.visibility = 'hidden';
到
document.getElementById('myGroup1').style.display= 'none';
为每个div执行此操作