How to create: Cascading dropdown lists
- Previous Page Click on Dropdown Menu
- Next Page Dropdown Menu in Top Navigation Bar
Learn how to use JavaScript to create cascading dropdown lists.
Create three dropdown lists
Create three dropdown lists within the HTML form.
The second and third dropdown lists will display different options, depending on the value selected in the parent dropdown list.
第一步 - 添加 HTML:
<form name="form1" id="form1" action="/action_page.php"> Subjects: <select name="subject" id="subject"> <option value="" selected="selected">Select subject</option> </select> <br><br> Topics: <select name="topic" id="topic"> <option value="" selected="selected">Please select subject first</option> </select> <br><br> Chapters: <select name="chapter" id="chapter"> <option value="" selected="selected">Please select topic first</option> </select> <br><br> <input type="submit" value="Submit"> </form>
第二步 - 添加 JavaScript:
var subjectObject = { "Front-end": { "HTML": ["Links", "Images", "Tables", "Lists"], "CSS": ["Borders", "Margins", "Backgrounds", "Float"] "JavaScript": ["Variables", "Operators", "Functions", "Conditions"] }, "Back-end": { "PHP": ["Variables", "Strings", "Arrays"], "SQL": ["SELECT", "UPDATE", "DELETE"] } } window.onload = function() { var subjectSel = document.getElementById("subject"); var topicSel = document.getElementById("topic"); var chapterSel = document.getElementById("chapter"); for (var x in subjectObject) { subjectSel.options[subjectSel.options.length] = new Option(x, x); } subjectSel.onchange = function() { // Clear the 'Chapter' and 'Topic' dropdown menus chapterSel.length = 1; topicSel.length = 1; // Display the correct value for (var y in subjectObject[this.value]) { topicSel.options[topicSel.options.length] = new Option(y, y); } } topicSel.onchange = function() { // Clear the 'Chapter' dropdown menu chapterSel.length = 1; // Display the correct value var z = subjectObject[subjectSel.value][this.value]; for (var i = 0; i < z.length; i++) { chapterSel.options[chapterSel.options.length] = new Option(z[i], z[i]); } } }
Related page
Tutorial:CSS Dropdown Menu
- Previous Page Click on Dropdown Menu
- Next Page Dropdown Menu in Top Navigation Bar