답변 6개
제 예상이 맞다면
fregisterform_submit() js 함수에서
alert 창으로 닉네임을 입력해 주십시오 가 나와서 submit이 안되는 것 같은데요
여기 if 문이 true 이니까 무조건 reg_mb_nick_check() 을 호출하겠네요
가입일 때: f.w.value == "" // true
수정일 때: f.w.value == "u" // true
f.mb_nick.defaultValue // undefined
f.mb_nick.value // undefined
f.mb_nick.defaultValue != f.mb_nick.value // true
https://github.com/gnuboard/gnuboard5/blob/master/js/jquery.register_form.js#L44
그런데 radio 로 바꾸셨으니
$("#reg_mb_nick").val() 은 undefined 이고
중복검사하는 ajax 파일은 $_POST['reg_mb_nick'] 을 요구하겠지요?
https://github.com/gnuboard/gnuboard5/blob/master/bbs/ajax.mb_nick.php#L10
결론은
radio 버튼의 validate는 value로 할 수 없습니다
왜냐하면 f.mb_nick.length 가 여러개이기 때문이죠
그럼 어떻게 체크해야할까요?
radio selected length 를 비교해야하는데
pure js 로 체크하면 코드가 좀 길어지니
-영카트 예시: https://github.com/gnuboard/youngcart5/blob/master/shop/orderform.sub.php#L1287
jQuery 로 작성하자면
$(f).find('[name="mb_nick"]:checked').length
로 비교해야합니다
라디오버튼이니 닉네임 중복검사는 의미가 없을 걸로 보이고요
fregisterform_submit(f) 함수에서 닉네임 중복검사를 안한다고 해도
https://github.com/gnuboard/gnuboard5/blob/master/bbs/register_form_update.php#L82
중복검사를 패쓰해야겠네요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
// 닉네임 검사 if ((f.w.value == "") || (f.w.value == "u" && f.mb_nick.defaultValue != f.mb_nick.value)) { var msg = reg_mb_nick_check(); if (msg) { alert(msg); f.reg_mb_nick.select(); return false; } }
주석 처리 or 삭제
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
어디가 오류나서 그런건지 잘 모르겠지만..
밑에 부분이면 되지 않을까 싶은데...
</p>
<p><label for="mb_nick">사무국
<input type="radio" value="사무" <?php echo isset($member['mb_nick'])?'checked':'';?>>
</label>
<label for="mb_nick">봉사
<input type="radio" value="봉사" <?php echo isset($member['mb_nick'])?'checked':'';?>>
</label></p>
<p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
초보라 무슨말인지 잘 이해가 안갑니다.