1

ドロップダウンがあり、選択したオプションに応じて、その下にさまざまなテーブルを表示したいと考えています。

私はすでにここでそれを見てきました: Javascript - onchange within <option>

それを複製することはできましたが、オプション/テーブルを追加する方法が本当にわかりません。

誰か助けてくれませんか?これまでのコードは次のとおりです。

<html>
<head>
<script type="text/javascript">
window.onload = function() {
    var eSelect = document.getElementById('transfer_reason');
    var optOtherReason = document.getElementById('otherdetail');
     eSelect.onchange = function() {
        if(eSelect.value === "other") {
            optOtherReason.style.display = 'block';
            } else {
            optOtherReason.style.display = 'none';
        }
    }
    var optOtherReason = document.getElementById('other2');
     eSelect.onchange = function() {
        if(eSelect.value === "z") {
            optOtherReason.style.display = 'block';
            } else {
            optOtherReason.style.display = 'none';
        }
    }
}
</script>
</head>
<body>
<select id="transfer_reason" name="transfer_reason">
<option value="">Motivo</option>
    <option value="x">Reason 1</option>
    <option value="y">Reason 2</option>
    <option value="z">Reason 3</option>
    <option value="other">Other Reason</option>
</select>
<br>
<table border="1" id="otherdetail" style="display: none;">
<tr>
<th>Versão 11</th><th>Versão 12</th><th>Justificativas</th>
</tr>
<tr>
<td> 1</td><td>Angelina</td><td>Delhi</td>
</tr>
</table>

<table border="1" id="other2" style="display: none;">
<tr>
<th>Versão 11</th><th>Versão 12</th><th>Justificativas</th>
</tr>
<tr>
<td> 1</td><td>Galeno</td><td>Delhi</td>
</tr>
</table>
</body>
</html>

現在のところ、id="other2" を持つテーブルのみが正しく読み込まれていますが、他のテーブルは正しく読み込まれていません。

4

1 に答える 1

1

例にあるものよりも良い方法があります。ドロップダウンでテーブル ID 値を使用すると、全体が簡単になります。

<script type="text/javascript">
    window.onload = function() {
    var eSelect = document.getElementById('transfer_reason');
    var selVal;
    hideTables();
    eSelect.onchange = function() {
        hideTables();    
         selVal = eSelect[eSelect.selectedIndex].value;
        document.getElementById(selVal).style.display = "block";
    }

}

function hideTables() {
     var tables = document.getElementsByTagName("table");
    for(var x=0;x<tables.length;x++) {
        tables[x].style.display = "none";
    }
}    
 </script>

HTML:

  <select id="transfer_reason" name="transfer_reason">
        <option value="">Motivo</option>
        <option value="Table1">Reason 1</option>
        <option value="Table2">Reason 2</option>
        <option value="Table3">Reason 3</option>
        <option value="Table4">Other Reason</option>
</select>

<table id="Table1"><tr><td>#1#</td></tr></table>

<table id="Table2"><tr><td>#2#</td></tr></table> 

... etc ...
于 2012-09-18T19:10:47.870 に答える