폼 요소에 id나 class 속성이 없고 name속성만 있다면 name 식별자를 사용해 폼 요소에 접근할 수 도 있습니다. 이 방법을 사용하려면 <form>태그에 name속성이 지정되어 있어야 하고, <form>태그 안에 포함된 폼 요소에도 name속성이 있어야 합니다.
값이 입력되었는지, 입력된 값이 정해진 조건에 맞는지 등을 검사하는 이 작업은 흔히 폼 밸리데이션이라고 불립니다.
var userId = document.querySelector("#user-id"); // ‘아이디’ 필드를 가져와 변수에 저장
userId.onchage = checkId;
function checkId() {
if (userId.value.length < 4 || userId.value.length > 15) { // userId 필드 내용의 길이가 4 이하이거나 15 이상일 경우 실행
alert("4~15 자리의 영문과 숫자를 사용하세요."); // 오류 메시지 출력
userId.select(); // 다시 입력할 수 있도록 userId 필드 선택
}
}
<입력한 아이디 글자수를 확인 하는 코드>
var pw1 = document.querySelector("#user-pw1"); // ‘비밀번호’ 필드를 가져와 변수에 저장
var pw2 = document.querySelector("#user-pw2"); // ‘비밀번호 확인’ 필드를 가져와 변수에 저장
pw1.onchange = checkPw;
pw2.onchange = comparePw;
function checkPw() {
if (pw1.value.length < 8) {
alert("비밀번호는 8자리 이상이어야 합니다."); // 오류 메시지 표시
pw1.value = ""; // ‘비밀번호’ 필드 지움
pw1.focus(); // 비밀번호를 다시 입력할 수 있게 포커싱
}
}
function comparePw() {
if(pw1.value != pw2.value) {
alert("암호가 다릅니다. 다시 입력하세요.");
pw2.value = ""; // ‘비밀번호 확인’ 필드 지움
pw2.focus(); // 비밀번호를 다시 입력할 수 있게 포커싱
}
}