1. val() 함수의 사용
- 입력값 조회 : 파라미터 앖이 함수를 호출하면 현재 설정되어 있는 입력값(value 속성의 값)으 리턴 받음
let value + $("셀렉터").val();
- 입력값 설정 : 파라미터를 통해 입력값(value 속성 값)을 설정
$("셀렉터").val("내용");
- 조회한 입력값이 존재 여부를 if문으로 검사하면 입력 여부를 알 수 있음
if(!value){...}
- focus() 함수의 사용 : 입력 요소에 포커스를 강제로 설정
$("셀렉터").focus();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<div>
<label>사용자 이름
<input type="text" name="username" id="username">
</label>
</div>
<div>
<label>비밀번호
<input type="password" name="userpass" id="userpass">
</label>
</div>
<button type="submit">입력값 확인</button>
<hr>
<div id="result"></div>
</form>
<script>
$("#myform").submit(function(e){
e.preventDefault();
let username = $("#username").val();
if (!username){
alert("이름을 입력해주세요");
$("#username").focus();
return false;
}
let userpass = $("#userpass").val();
if (!userpass){
alert("비밀번호를 입력하세요");
$("#userpass").focus();
return false;
}
$("#result").append("<div>이름 : " + username + "</div>");
$("#result").append("<div>비밀번호 : " + userpass + "</div>");
});
</script>
</body>
</html>
2. 셀렉트박스 입력값
- 만약
<option> 요소에 value 속성이 없을 경우 태그 안의 내용을 가져오기 때문에 값이 필요없는 항목이더라도 반드시 공백을 지정해야함
<select>
<option value="">--- 선택하세요 ---</option>
<option value="1">항목 1</option>
</select>
- 드롭다운 역시 val() 함수를 사용해서 선택한
<option> 요소의 값을 가지고 옴
- 선택 위치 조회 : 드롭 다운에 포함된 option 태그 중에서 선택된 항목(:selected)의 위치를 검사
$("셀렉터 > option:selected").index()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<div>
<label>과목
<select name="subject" id="subject">
<option value="">--- 선택하세요 ---</option>
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="javascript">Javascript</option>
</select>
</label>
</div>
<button type="submit">입력값 확인</button>
<hr>
<div id="result"></div>
</form>
<script>
$("#myform").submit(function(e){
e.preventDefault();
let subject = $("#subject").val();
if (!subject){
alert("과목을 선택해주세요");
$("#subject").focus();
return false;
}
let subject_index = $("#subject > option:selected").index();
$("#result").append("<div>과목 : " + subject + "</div>");
$("#result").append("<div>선텍한 과목의 인덱스값 : " + subject_index + "</div>");
});
</script>
</body>
</html>
3. 라디오의 선택 항목
- 선택값 조회
- 여러개 항목 중에서 선택된 항목을 의미하는 가상 셀렉터:checked를 사용하여 선택된 요소에 접근
- 라디오 버튼은 여러 개의 항목 중에서 단 하나만 선택할 수 있으므로, :checked 가상 클래스를 사용하여 접근하는 요소 역시 단일 요소가 됨
let value = $("셀렉터:checked").val();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<label>
<input type="radio" name="subject" value="html">HTML
</label>
<label>
<input type="radio" name="subject" value="css">CSS
</label>
<label>
<input type="radio" name="subject" value="javascript">Javascript
</label>
<button type="submit">입력값 확인</button>
</form>
<script>
$("#myform").submit(function(e){
e.preventDefault();
let value = $("input[name='subject']:checked").val();
if (!value) {
alert("선택된 항목은 " + value + "입니다");
return false;
}
alert("선택된 항목은 " + value + "입니다");
});
</script>
</body>
</html>
4. checkbox 선택 항목
- checkbox는 여러 개의 항목들 중에서 복수 선택이 가능한 요소
- 사용자가 선택한 항목에 대한 접근은 가상 셀렉터:checked를 사용해야함
- 체크박스는 복수 선택이 가능하기 때문에 접근한 요소는 배열 상태가 됨
<input tpye="checkbox" name="hello" class="mycheck" value="1">
<input tpye="checkbox" name="hello" class="mycheck" value="2">
<input tpye="checkbox" name="hello" class="mycheck" value="3">
let el = $("셀렉터:checked"); // 2번, 3번을 선택했다고 가정
let el = [<input tpye="checkbox" name="hello" class="mycheck" value="2">
<input tpye="checkbox" name="hello" class="mycheck" value="3">];
- 가져온 요소가 배열이기 때문에 반복문으로 처리
- 배열의 요소들을 jquery 객체로 변환하여 val() 함수를 호출
for(let i=0; i<el.length; i++) {
let value = $(el[i]).val();
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<label>
<input type="checkbox" class="hobby"
value="soccer"/> 축구
</label>
<label>
<input type="checkbox" class="hobby"
value="basketball"/> 농구
</label>
<label>
<input type="checkbox" class="hobby"
value="baseball"/> 야구
</label>
<button type="submit">입력값 확인</button>
<hr/>
<div id="result"></div>
</form>
<script>
$("#myform").submit(function(e){
e.preventDefault();
let check_list = $(".hobby:checked");
if( check_list.length == 0 ){
alert("선택된 항목이 없습니다.");
return false;
}
for( let i=0; i<check_list.length; i++ ){
let value = $( check_list[i] ).val();
$("#result").append("<div>" + value + "</div>");
}
$.each(check_list, function(index, item){
console.log("index : " + index);
console.log("item : " + item);
});
});
</script>
</body>
</html>