<select>
태그로 표현되는 드롭다운 요소는 그 자체가 배열이며<option>
태그들이 배열의 요소가 된다.selectedIndex
는 선택된 요소의 배열 인덱스를 의미var dropdown = document.form의 name값.select의 name값;
dropdown.selectedIndex = 2;
var choice_index = dropdown.selectedIndex;
var choice_value = dropdown[choice_index].value;
<option>
요소 제어<option>
요소는 선택을 요구하기 위한if (dropdown.selectedIndex == 0) {
... 선택되지 않은 경우의 처리 ...
}
document.querySelector("#src").addEventListener('change', e => {
document.querySelector('#dsc').value = e.currentTarget.value;
});
document.querySelector('#keycheck').addEventListener('keyup', e => {
document.querySelector('#keycode').innerHTML = e.currentTarget.value;
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<select name="site" id="site">
<option value="">-----선택하세요-----</option>
<option value="https://www.naver.com">네이버</option>
<option value="https://www.daum.net">다음</option>
<option value="https://www.google.com">구글</option>
</select>
<hr />
<input type="text" id="src" />
<input type="text" id="dsc" readonly />
<hr />
<input type="text" id="keycheck" />
<p id="keycode"></p>
<script>
document.querySelector('#site').addEventListener('change', e => {
const choose = e.currentTarget.selectedIndex;
console.log(choose);
const value = e.currentTarget[choose].value;
if (value) {
//window.open() : 파라미터로 전달된 URL을 새로운 탭으로 여는 함수
console.log(value);
window.open(value);
}
});
//input요소의 change이벤트는 입력 후 포커스가 빠져 나왔을 때 동작함
document.querySelector("#src").addEventListener('change', e => {
document.querySelector('#dsc').value = e.currentTarget.value;
});
//실시간으로 키 입력을 감지하기 위해서는 keyup이벤트 사용
document.querySelector('#keycheck').addEventListener('keyup', e => {
document.querySelector('#keycode').innerHTML = e.currentTarget.value;
})
</script>
</body>
</html>