我想当我从组合框中选择一个值时它会向我显示特殊表格,当我选择另一个时它会显示另一个表格,但我的代码无法正常工作。
<script>
function bank_state() {
if (document.profile.nb_shetab_bank.value == 'SAMAN') {
document.getElementById('auth_method_pr1').style.display = 'inline';
document.getElementById('auth_method_pr2').style.display = 'none';
} else if (document.profile.nb_shetab_bank.value == 'MELAT') {
document.getElementById('auth_method_pr1').style.display = 'none';
document.getElementById('auth_method_pr2').style.display = 'inline';
}
}
</script>
<select name="nb_shetab_bank" size="1" onchange="bank_state();" >
<option value="SAMAN" selected>Saman</option>
<option value="MELAT" >Mellat</option>
</select>
<table border="1" cellpadding="0" cellspacing="0" id="auth_method_pr1"
style="display:none;">
<tr><td>salam</td></tr>
</table>
<table width="100%" border="1" cellpadding="0" cellspacing="0" id="auth_method_pr2"
style="display:none;">
style="display:none;">
<tr><td>salam salam</td></tr>
</table>
答案 0 :(得分:0)
将<table>
显示更改为“内联”并不是一个好主意,确实会导致奇怪的行为。最好更改为空字符串,它将采用默认值:
document.getElementById('auth_method_pr1').style.display = "";
那就是说,你的代码可以写得有点不同,以便更具可读性和更好。首先,将下拉对象发送到函数:
<select name="nb_shetab_bank" size="1" onchange="bank_state(this);" >
现在该功能可以这样:
function bank_state(sender) {
var table1 = document.getElementById('auth_method_pr1');
var table2 = document.getElementById('auth_method_pr2');
switch (sender.value) {
case 'SAMAN':
table1.style.display = '';
table2.style.display = 'none';
break;
case 'MELAT':
table2.style.display = '';
table1.style.display = 'none';
break;
}
}