Javascript 创建考虑单选按钮和下拉菜单的显示/隐藏循环

Javascript 创建考虑单选按钮和下拉菜单的显示/隐藏循环,javascript,drop-down-menu,radio-button,hide,show,Javascript,Drop Down Menu,Radio Button,Hide,Show,我目前正在运行一个页面,需要一个下拉菜单和三个单选按钮供用户选择。每次用户更改其选择时,将根据其选择显示一个div,同时隐藏所有其他div。我当前的JavaScript可以工作,但它是一个巨大的、可能效率低下的混乱 例: 你可以在这里看到一切 我有没有办法把它浓缩成某种循环?我已经玩了一些循环,但我不知道如何让循环考虑单选按钮选择和下拉菜单选择。 < P>我认为这可能会缩短一点: function enrollmentChange() { var id = document.getEle

我目前正在运行一个页面,需要一个下拉菜单和三个单选按钮供用户选择。每次用户更改其选择时,将根据其选择显示一个div,同时隐藏所有其他div。我当前的JavaScript可以工作,但它是一个巨大的、可能效率低下的混乱

例:

你可以在这里看到一切


我有没有办法把它浓缩成某种循环?我已经玩了一些循环,但我不知道如何让循环考虑单选按钮选择和下拉菜单选择。

< P>我认为这可能会缩短一点:

function enrollmentChange() {
    var id = document.getElementById, // short hand
        choice = id("enrollmentChoice").options[id("enrollmentChoice").selectedIndex].text,
        which = id("onC").checked ? "On" :
                id("offC").checked ? "Off" :
                id("comm").checked ? "Comm" : "";

    if (which !== "") {
        ["On", "Off", "Comm"].forEach(function(w) {
            id("full-time" + w).style.display = "none";
            id("three-quarter-time" + w).style.display = "none";
            id("half-time" + w).style.display = "none";
            id("less-than-half-time" + w).style.display = "none";
        });

        if (choice === "Full Time (12 or More Credit Hours)") {
            id("full-time" + which).style.display = "block";
        } else if (choice === "Three-Quarter Time (9-11 Credit Hours)") {
            id("three-quarter-time" + which).style.display = "block";
        } else if (choice === "Half Time (6-8 Credit Hours)") {
            id("half-time" + which).style.display = "block";
        } else {
            id("less-than-half-time" + which).style.display = "block";
        }
    }
}

你可以这样做:

var enrollmentChoice = document.getElementById("enrollmentChoice");
var arraymap = ['Please select enrollment status',''],
               ['Full Time (12 or More Credit Hours)','three-quarter-timeOn'],
               ['Half Time (6-8 Credit Hours)','half-timeOn'] ... ;
var inputs = document.getElementsByTagName('input');

for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].type.toLowerCase() == 'radio') {
        for(var ii=0;ii<arraymap.length;ii++){
           if(arraymap[ii][0] == enrollmentChoice.options[enrollmentChoice.selectedIndex].text && arraymap[ii][1] == inputs[i].id){
              inputs[i].style.display = 'block';
           }else{
              inputs[i].style.display = 'none'; 
           }
        }
    }
}
var-enrollmentChoice=document.getElementById(“enrollmentChoice”);
var arraymap=['请选择注册状态',''],
[‘全日制(12学时或以上)’,‘四分之三学时’,
[“半小时(6-8学时)”,“半小时”;
var inputs=document.getElementsByTagName('input');
对于(变量i=0;i对于(var ii=0;i)也请把你的html放在小提琴上。好的,它已经在主帖子中更新了。这是链接。它在小提琴上不起作用,但在现场可以很好地工作。
var enrollmentChoice = document.getElementById("enrollmentChoice");
var arraymap = ['Please select enrollment status',''],
               ['Full Time (12 or More Credit Hours)','three-quarter-timeOn'],
               ['Half Time (6-8 Credit Hours)','half-timeOn'] ... ;
var inputs = document.getElementsByTagName('input');

for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].type.toLowerCase() == 'radio') {
        for(var ii=0;ii<arraymap.length;ii++){
           if(arraymap[ii][0] == enrollmentChoice.options[enrollmentChoice.selectedIndex].text && arraymap[ii][1] == inputs[i].id){
              inputs[i].style.display = 'block';
           }else{
              inputs[i].style.display = 'none'; 
           }
        }
    }
}