これが役立つ場合、最初のユースケースを整理するために、HTML で次のようにすることができます。
Age:
<select name='age' id='age' onchange="showRelevantRuleDropdown(this,1);">
<option value='0'>Bronze Age</option>
<option value='1'>Middle Age</option>
...
</select>
<select name='BronzeAge' id='BronzeAge' onchange="showRelevantRuleDropdown(this,1);">
<option value='0'>Household tools</option>
<option value='1'>Jewelry</option>
...
</select>
<select name='MiddleAge' id='MiddleAge' onchange="showRelevantRuleDropdown(this,1);">
<option value='0'>Jewlery</option>
<option value='1'>Religious artifacts</option>
...
</select>
...
<script language='JavaScript'>
showRelevantRuleDropdown(document.getElementById('age'),1);
</script>
以下の Javascript を使用します。
function showRelevantRuleDropdown(elem, restore) {
// Show one SELECT element (elem) between Option 1 or Option 2
// If the parameter restore is 1, the hidden element is restored to its default value
if (elem.selectedIndex == 0) {
document.getElementById('BronzeAge').style.display = 'none';
document.getElementById('MiddleAge').style.display = 'inline';
if (restore == 1) {
document.getElementById('BronzeAge').getElementsByTagName('option')['0'].selected = 'selected';
}
}
else {
document.getElementById('MiddleAge').style.display = 'none';
document.getElementById('BronzeAge').style.display = 'inline';
if (restore == 1) {
document.getElementById('MiddleAge').getElementsByTagName('option')['0'].selected = 'selected';
}
}
}
これは 1 レベルの深さで機能しますが、簡単に拡張できます。
使用したい場合は、codepen にコードがあります: http://codepen.io/ophintor/pen/FaHbh