안녕하세요. 수고가 많으십니다.
어떤 분의 글을 보고, 게시판에 개인정보 약관동의 체크박스를 만들었는데, 동의 체크를 안해도 글이 저장되어집니다.
editor.php엔
<?php if(!$board->isAdmin()):?>
<div class="kboard-attr-row">
<label class="attr-name">약관 동의</label><div class="attr-value"><input type="checkbox" name="terms" checked>
본인이 제공하는 개인정보를 수집 및 이용함에 동의합니다. (<a href = "" target="_blank">이용 약관 바로가기</a>)<br>
<div class="desk"><textarea rows="4" cols="40">
【 개인정보처리방침 】</textarea></div></div><?php endif?>
script.js엔
else if(!$('input[name=terms]:checked', form).length){
alert('약관 동의 해주세요.');
$('input[name=terms]', form).focus();
return false;
}
를 추가하였습니다.
KBoard 질문이라기보단 자바스크립트 질문이군요~^^
아래처럼 해보시겠어요?
else if(!jQuery('input[name=terms]', form).prop('checked')){
alert('약관 동의 해주세요.');
$('input[name=terms]', form).focus();
return false;
}
크롬 개발자도구(F12키)로 혹시 스크립트 오류가 나는건 아닌지도 확인해보세요.
감사합니다.
그런데 실행해보니 인터넷익스플로러에선 되고, 크롬에선 안되네요.
else if(!jQuery('input[name=terms]:checked', form).length){
alert('약관 동의 해주세요.');
$('input[name=terms]', form).focus();
return false;
}
이렇게 해도 안될가요?
그래도 마찬가지네요. 그리고 익스플로러에서 "약관에 동의 해주세요" 창만 뜨고 여기에서 확인을 누르면 그냥 글이 저장됩니다.
제가 프로그래밍을 몰라 어찌할 방법이 없네요.
친절하고 자세한 답변 감사드립니다.
$('input[name=terms]', form).focus();
위 코드를 아래처럼 바꿔보시겠어요?
jQuery('input[name=terms]', form).focus();
앞서 말씀드린것처럼 스크립트 오류가 나는것같은데 브라우저 개발자도구로 스크립트 오류가 나는지 체크해보세요~
의외로 쉽게 해결하실 수 있습니다.
$를 jQuery로 바꾸니 되네요. 크롬에서도 잘 됩니다.
관리자 님 덕분에 해결했습니다. 고맙습니다. ^^