w3.css
계단식 드롭다운 목록
JavaScript로 계단식 드롭다운 목록을 만드는 방법을 알아보자.
세 개의 드롭다운 목록 만들기
HTML 양식 내에 3개의 드롭다운 목록을 만든다.
두 번째 및 세 번째 드롭다운 목록은 상위 드롭다운 목록에서 선택한 값에 따라 다른 옵션을 표시한다.
1단계) 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>
2단계) 자바스크립트 추가
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() { //empty Chapters- and Topics- dropdowns chapterSel.length = 1; topicSel.length = 1; //display correct values for (var y in subjectObject[this.value]) { topicSel.options[topicSel.options.length] = new Option(y, y); } } topicSel.onchange = function() { //empty Chapters dropdown chapterSel.length = 1; //display correct values 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]); } } }
기본 예시
예제 보기참고
W3C School - How TO - Cascading Dropdown List