checkAgree 함수는 웹 페이지의 특정 폼(form) 내부에 있는 동의 체크박스(checkbox)들이 모두 체크되어 있는지 확인하고, 그 결과에 따라 다른 작업을 수행하는 기능을 제공합니다. 아래에서 코드의 각 부분을 상세히 설명하겠습니다:
- 폼 참조 가져오기:document.forms는 문서 내의 모든 폼 요소들을 나타냅니다. 'regist'라는 이름을 가진 폼을 frm 변수에 저장합니다.
-
javascriptCopy code
const frm = document.forms['regist'];
- 체크 상태 초기화:ch 변수는 모든 체크박스가 체크되어 있는지 확인하는 데 사용됩니다. 초기값으로 true를 가집니다.
-
javascriptCopy code
let ch = true;
- 동의 항목 검사:
- frm['agree']는 'agree'라는 이름을 가진 폼 내의 모든 체크박스 요소들을 나타냅니다.
- 루프는 각 체크박스 요소를 e 변수에 저장하며 반복됩니다.
- if(!e.checked)는 현재 체크박스(e)가 체크되어 있지 않은 경우를 검사합니다.
- 체크되어 있지 않은 체크박스가 발견되면 경고 메시지를 표시하고, ch 변수를 false로 설정합니다.
-
javascriptCopy code
for(e of frm['agree']){ if(!e.checked){ alert(`${e.value} 항목에 동의하셔야 합니다`); ch = false; } }
- 폼 제출:
- 모든 체크박스가 체크되어 있다면 (ch가 true인 경우), frm.submit()을 호출하여 폼을 제출합니다.
- 그리고 함수 실행을 종료합니다.
-
javascriptCopy code
if(ch){ frm.submit(); return; }
- 함수 종료:만약 모든 체크박스가 체크되어 있지 않다면 함수는 아무 것도 수행하지 않고 종료됩니다.
-
javascriptCopy code
return;
결과적으로, checkAgree 함수는 사용자가 모든 동의 항목을 체크했는지 확인하고, 그렇다면 폼을 제출합니다. 하나 이상의 항목이 체크되어 있지 않다면 경고 메시지를 표시하고 폼 제출을 중단합니다.
function checkAgree() {
const frm = document.forms['regist'];
let ch = true; // 전체 체크가 되고있는지 확인하기 위해서
for(e of frm['agree']){
if(!e.checked){
alert(`${e.value} 항목에 동의하셔야 합니다`);
ch = false; // 한번이라도 체크가 안 외어 있다면false
}
}
if(ch){
frm.submit();
// true가 되면 전체가 체크 되어있음
return; //if문 리턴
}
return;
}
댓글 영역