onchange组合框和java脚本

时间:2013-06-16 09:59:20

标签: javascript html combobox

我想当我从组合框中选择一个值时它会向我显示特殊表格,当我选择另一个时它会显示另一个表格,但我的代码无法正常工作。

<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> 

1 个答案:

答案 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;
    }
}