[JavaScript] 자바스크립트 풀다운(Pull-down) 메뉴 사용하기

2022. 7. 16. 02:52Program/JavaScript

171_자바스크립트 풀다운(Pull-down) 메뉴 사용하기

[적용]

  • 시도별 행정 규역 입력 폼을 만들고 싶을 때
  • 풀다운 메뉴를 동적으로 처리하고 싶을 때

[내용]

지역마다 부여된 행정 표준 코드의 일부를 가져와 풀다운 입력 폼을 만들어 보자.

스크립트로 select 요소 내 option 요소를 동적으로 생성한다.

 

HTML                                                                                                                                                              index.html

<body>
    <select id="pref"></select>
    <p class="log"></p>
</body>

JavaScript                                                                                                                                                          main.js

// 행정 표준 코드에 따른 지역별 코드 배열
const PREF_LIST = [
    { value: 1, name: '서울' },
    { value: 2, name: '세종' },
    { value: 3, name: '부산' },
    { value: 4, name: '대구' },
    { value: 5, name: '인천' },
    { value: 6, name: '광주' },
    { value: 7, name: '대전' },
    { value: 8, name: '울산' },
    { value: 9, name: '제주' },
    { value: 10, name: '서귀포' },
    { value: 11, name: '수원' },
    { value: 12, name: '고양' },
    { value: 13, name: '성남' },
    { value: 14, name: '용인' },
    { value: 15, name: '부천' },
    { value: 16, name: '안산' },
    { value: 17, name: '평택' },
    { value: 18, name: '의정부' },
    { value: 19, name: '김포' },
    { value: 20, name: '광명' },
    { value: 21, name: '하남' },
    { value: 22, name: '과천' },
    { value: 23, name: '춘천' },
    { value: 24, name: '원주' },
    { value: 25, name: '강릉' },
    { value: 26, name: '속초' },
    { value: 27, name: '충주' },
    { value: 28, name: '아산' },
    { value: 29, name: '전주' },
    { value: 30, name: '군산' }
];

// select 요소 참조
const selectElement = document.querySelector('#pref');

// option 요소 초기 표시 작성
let optionString = '<option value="">선택하세요</option>';
// option 요소를 배열에서 가져오기
PREF_LIST.forEach((item) => {
    // 시도별 value와 name반영
    optionString +=
        `<option value="${item.value}">${item.name}</option>`;
});

// option 요소를 select 요소에 추가
selectElement.innerHTML = optionString;

// 변경 시 이벤트
selectElement.addEventListener('change', (event) => {
    // 현재 값 가져오기
    const value = event.target.value;
    
    // 메시지 작성
    const message =
        value === '' ? '지역이 선택되지 않았습니다.' : `선택된 지역은 ${value} 입니다.`;
    
    // 화면에 표시
    document.querySelector('.log').innerHTML = message;
});

* 메시지 작성에서 사용한 삼항 연산자는 '진리값 ? 값1 : 값2'의 방식으로 기술하며,

진리값이 true 인 경우 값1, false인 경우 값2를 반환한다.

 

실행결과

 


 

 

 

 

 

참조 :
실무에 바로 적용하는 자바스크립트 코드레시피 278
아케다 야스노부, 카노 타케시 지음 / 이춘혁 옮김