WEB Archive

[HTML] Javascript - select, option 선택한 값을 추출하여 리스트 만들어보기

universedevelope 2024. 8. 21. 14:16
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test031.html</title>

<style type="text/css">

	/* 나의 스타일.. 명령 프롬프트 */
	*
	{
		background-color: white;
		font-family: 나눔고딕코딩;
		font-size: 20pt;
		color: #ababab;
		font-weight: bold;
	}
	h1
	{
		font-size: 40pt;
		color: #ababab;
		margin: 0%;
	}
	hr
	{
		background-color: #ababab;
		height: 15px;
	}
	input.btn
	{
		width: 150.5px;
		background-color: black;
		text-align: center;
	}
	input.btn:hover
	{
			background-color: tomato;
			color: white;
	}
	input.txtbox
	{
		 width: 200px;
		 text-align: center;
	}
	input.txtbox:hover
	{
		background-color: skyblue;
		color: white;
	}
	select.txtbox
	{
		width: 208px; text-align: center;
	}

</style>
<script type="text/javascript">
	function selectTest()
	{
		
		alert("11");
		/*
		// 첫 번째 방법
		var position = document.getElementById("userPosition").value;
		// 확인
		// alert(position); --==>> vfr(사원)
		*/
		
		
		// 두 번째 방법
		/*
		var positionObj = document.getElementById("userPosition");
		var positionOptions = positionObj.options;
		var positionMsg = "";
		// alert(positionOptions); [object HTMLOptionsCollection] 자바스크립트 배열반환
		// alert(positionOptions.length); 4 select 요소 가 4개
		for (var i = 0; i < positionOptions.length; i++)	// 0 1 2 3
		{
			//alert(positionOptions[i].selected);
			// f f f t(사원)
			// 선택된 옵션 항목에 따라 true / false 형태로 확인
			if (positionOptions[i].selected)
			{
				// 단일 선택일 때
				//positionMsg = positionOptions[i].value;
				//break;
				
				// 다중 선택
				//positionMsg += positionOptions[i].value + " ";
			}
		}
		*/
		//alert(positionMsg);
		
		// 세 번째 방법
		/*
		var positionObj = document.getElementById("userPosition");
		// 확인
		//alert(positionObj.selectedIndex); // 0 1 2 3 (인덱스반환)
		// 부장 → 0 과장 → 1 대리 → 2 사원 → 3
		// alert(positionObj.options[2].value); 대리
		var positionMsg = positionObj.options[positionObj.selectedIndex].value;
		alert(positionMsg);
		*/
	}
	
	function addMember()
	{
		//alert("함수 호출 확인~!!");
		var uName = document.getElementById("userName").value;
		var uSsn = document.getElementById("userSsn").value;
		
		//var uCity = document.getElementById("userCity").value;
		var cityObj = document.getElementById("userCity");
		//alert(cityObj.selectedIndex);
		// --==>> 서울→0, 대전→1, 광주→2, 대구→3
		//alert(cityObj.options[cityObj.selectedIndex].value);
		// 2380(대전)
		var uCity = cityObj.options[cityObj.selectedIndex].value;
		//alert("1");
		
		var buseoObj = document.getElementById("userDepartment");
		var uBuseo = buseoObj.options[buseoObj.selectedIndex].value;
		//alert("2");
		
		var positionObj = document.getElementById("userPosition");
		var uPosition = positionObj.options[positionObj.selectedIndex].value;
		
		//alert(uPosition);
		var uBasicPay = document.getElementById("userBasicPay").value;
		
		// 테이블 그리기 ---------------------------------------
		var tableNode = document.getElementById("memberList");
		var trNode = document.createElement("tr");
		
		trNode.appendChild(createTdNode(uName));
		trNode.appendChild(createTdNode(uSsn));
		trNode.appendChild(createTdNode(uCity));
		trNode.appendChild(createTdNode(uBuseo));
		trNode.appendChild(createTdNode(uPosition));
		trNode.appendChild(createTdNode(uBasicPay));
		tableNode.appendChild(trNode);
		// --------------------------------------- 테이블 그리기
		// formClear();					//check ~!!
		
		document.forms[0].reset();
		
		document.getElementById("userName").focus();
		
	}
	
	function createTdNode(val)
	{
		var textNode = document.createTextNode(val);
		var tdNode = document.createElement("td");
		tdNode.appendChild(textNode);
		return tdNode;
	}// end of createTdNode()
	
	/*
	function formClear()
	{
		document.getElementById("userName").value = "";
		document.getElementById("userSsn").value = "";
		var cityObj = document.getElementById("userCity");
		cityObj.options[0].selected = true;
		var buseoObj = document.getElementById("userDepartment");
		buseoObj.options[3].selected = true;
		var jikwiObj = document.getElementById("userPosition");
		jikwiObj.options[3].selected = true;
		document.getElementById("userBasicPay").value = "";
	}
	*/
</script>

</head>
<body>

<div>
	<h1>자바스크립트 활용</h1>
	<hr>
</div>


<div>
	<h2>선택목록(select) 다루기</h2>
	
	<form>
		<table>
			<tr>
				<td>이름</td>
				<td>
					<input type = "text" id = "userName" class = "txtbox">
				</td>
			</tr>
			<tr>
				<td>주민번호</td>
				<td>
					<input type = "text" id = "userSsn" class = "txtbox">
				</td>
			</tr>
			<tr>
				<td>지역</td>
				<td>
					<!-- <input type = "text" id = "userCity" class = "txtbox"> -->
					<select id ="userCity" class = "txtbox">
						<option value = "1123(서울)">서울</option>
						<option value = "2380(대전)">대전</option>
						<option value = "5567(광주)">광주</option>
						<option value = "9984(대구)">대구</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>부서</td>
				<td>
					<!-- <input type = "text" id = "userDepartment" class = "txtbox"> -->
					<select id ="userDepartment" class = "txtbox">
						<option value = "9987(개발부)">개발부</option>
						<option value = "9988(인사부)">인사부</option>
						<option value = "9989(자재부)">자재부</option>
						<option value = "9990(영업부)" selected = "selected">영업부</option>
						<option value = "9991(총무부)">총무부</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>직위</td>
				<td>
					<!-- <input type = "text" id = "userPosition" class = "txtbox"> -->
					<select id = "userPosition" class = "txtbox">
						<option value = "zaq(부장)">부장</option>
						<option value = "xsw(과장)">과장</option>
						<option value = "cde(대리)">대리</option>
						<option value = "vfr(사원)" selected = "selected">사원</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>기본급</td>
				<td>
					<input type = "text" id = "userBasicPay" class = "txtbox">
				</td>
			</tr>
			
		</table>
		
		<!--<input type = "button" value = "직원 추가" class = "btn" onclick = "selectTest()"> -->
		<input type = "button" value = "직원 추가" class = "btn" onclick = "addMember()">
		<input type = "reset" value = "입력 취소" class = "btn">
		<br>
		<br>
		
		<table id = "memberList" border = "1">
			<tr>
				<td>이름</td>
				<td>주민번호</td>
				<td>지역</td>
				<td>부서</td>
				<td>직위</td>
				<td>기본급</td>
			</tr>
		</table>
	</form>
</div>

</body>
</html>
728x90