简体   繁体   中英

Cascading Dropdown using javascript not working

I have this code in javascript but it is not working. can someone check my code? By the way i just got this code from one of the question here. thanks

function CollegeDepartment() {
    var s1 = document.getElementById("college");
    var s2 = document.getElementById("department");
    s2.innerHTML = "";
    if (s1.value == "College of Engineering") {
        var optionArray = ["Civil Engineering", "Computer Engineering", "Electrical Engineering", "Electronics and Communication Engineering, Industrial Engineering, Mechanical Engineering"];
    } else if (s1.value == "CAS") {
        var optionArray = ["Political Science", "Mascomm", "Liacomm"];
    } else if (s1.value == "Commerce") {
        var optionArray = ["Business Ad", "Hotel Management", "Tourism"];
    } else if (s1.value == "Education") {
        var optionArray = ["SPED"];
    } else if (s1.value == "CICCT") {
        var optionArray = ["Computer Science", "Information Technology"];
    }

    for (var option in optionArray) {
        var newOption = document.createElement("option");
        newOption.value = optionArray[option];
        newOption.innerHTML = optionArray[option];
        s2.options.add(newOption);
    }
};

EDIT:

HTML

 <select class="form-control" name="college" id="college" runat="server" oninput="CollegeDepartment()">
                 <option selected>Select College</option>
                 <option value="College of Engineering">College of Engineering</option>
                 <option value="CAS">College of Arts and Science</option>
                 <option value="Commerce">College of Commerce</option>
                 <option value="Education">College of Education</option>
                 <option value="CICCT">CICCT</option>   
             </select>
        </div>
            <br />

        <div class="form-group">
            <select id="department" name="department" class="form-control" runat="server" placeholder="Department" >
                <option value="Department" selected>Select Department</option>
            </select>
        </div>

Found your problem right away, you was using the oninput event what you needed was onchange

So this:

 <select class="form-control" name="college" id="college" runat="server" oninput="CollegeDepartment()">

Becomes:

 <select class="form-control" name="college" id="college" runat="server" onchange="CollegeDepartment()">

 function CollegeDepartment() { var s1 = document.getElementById("college"); var s2 = document.getElementById("department"); s2.innerHTML = ""; if (s1.value == "College of Engineering") { var optionArray = ["Civil Engineering", "Computer Engineering", "Electrical Engineering", "Electronics and Communication Engineering, Industrial Engineering, Mechanical Engineering"]; } else if (s1.value == "CAS") { var optionArray = ["Political Science", "Mascomm", "Liacomm"]; } else if (s1.value == "Commerce") { var optionArray = ["Business Ad", "Hotel Management", "Tourism"]; } else if (s1.value == "Education") { var optionArray = ["SPED"]; } else if (s1.value == "CICCT") { var optionArray = ["Computer Science", "Information Technology"]; } for (var option in optionArray) { var newOption = document.createElement("option"); newOption.value = optionArray[option]; newOption.innerHTML = optionArray[option]; s2.options.add(newOption); } }; 
 <select class="form-control" name="college" id="college" runat="server" onchange="CollegeDepartment()"> <option selected>Select College</option> <option value="College of Engineering">College of Engineering</option> <option value="CAS">College of Arts and Science</option> <option value="Commerce">College of Commerce</option> <option value="Education">College of Education</option> <option value="CICCT">CICCT</option> </select> </div> <br /> <div class="form-group"> <select id="department" name="department" class="form-control" runat="server" placeholder="Department" > <option value="Department" selected>Select Department</option> </select> </div> 

Try the above snippent, alternatively here is a CodePen: http://codepen.io/anon/pen/PPpWJp

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM