我有一些带有标签的字段,我已将它们放入表格中以进行布局。有一个下拉选择,根据选择显示/隐藏表中的行。我的代码在 IE9 中按我想要的方式工作,但在 Chrome 和 Firefox 中,每次显示以前隐藏的行时,该行的内容都会偏离位置。
有几个字段和多个选择项(我在下面的代码中进行了删减),所以我使用 switch 语句来告诉它要显示和隐藏什么。如何让 Chrome 和 Firefox 像 IE9 一样工作,以便行内容在显示时不会移动?
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM ACTION="#" name=form>
<select name="type" onchange="changeTable()">
<option value="A">A</option>
<option value="B">B</option>
</select>
<BR>
<table ID="options">
<tr>
<td>A, B, C, D</td>
<td><input type=text name="1" size=20 maxlength="20"></td>
</tr>
<tr ID = "A2">
<td>A</td>
<td><input type=text name="2" size=20 maxlength="20"></td>
</tr>
<tr>
<td>A, B, C, D</td>
<td><input type=text name="3" size=10 maxlength="10"></td>
</tr>
<tr ID="A4" style="display:none">
<td>B, D</td>
<td><input type=text name="4" size=10 maxlength="10"></td>
</tr>
<tr ID="A5">
<td>A</td>
<td><select name="5">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
</tr>
<tr ID="A6" style="display:none">
<td>A</td>
<td><input type=text name="6" size=20></td>
</tr>
</table>
<script>
function changeTable(){
var type = document.form.type.value;
switch(type){
case "A":
document.getElementById("A2").style.display = 'block';
document.getElementById("A4").style.display = "none";
document.getElementById("A7").style.display = 'none';
document.getElementById("A8").style.display = 'none';
document.getElementById("A9").style.display = 'none';
document.getElementById("A5").style.display = "block";
break;
case "B":
document.getElementById("A2").style.display = 'none';
document.getElementById("A4").style.display = "block";
document.getElementById("A7").style.display = 'none';
document.getElementById("A8").style.display = 'none';
document.getElementById("A9").style.display = 'none';
document.getElementById("A5").style.display = "none";
document.getElementById("A6").style.display = "none";
break;
}
}
</script>
</BODY>
</HTML>