회원가입시 라디오버튼 소스

회원가입시 라디오버튼 소스

QA

회원가입시 라디오버튼 소스

본문

아이고 머리 아픕니다...

회원가입시 닉네임을 부서별 분류를 했습니다.

닉네임을 부서별로 분류했을때 라디오 버튼 사용법 부탁 드릴께요.

==============================

 

member/register_form.skin.php 에서 회원가입 소스를 몰라서 그렇습니다.

 

<input type=radio name='mb_nick' value="사무"  <? if($mb[mb_nick] == "사무") echo "checked"; ?> required > 사무국
<input type=radio name='mb_nick' value="봉사"  <? if($mb[mb_nick] == "봉사") echo "checked"; ?>  required>봉사국

 

이 질문에 댓글 쓰기 :

답변 6

제 예상이 맞다면 

fregisterform_submit() js 함수에서 

alert 창으로 닉네임을 입력해 주십시오 가 나와서 submit이 안되는 것 같은데요

 

https://github.com/gnuboard/gnuboard5/blob/master/theme/basic/skin/member/basic/register_form.skin.php#L401

여기 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

https://github.com/gnuboard/gnuboard5/blob/12132598b4e05a42bfe6103e5dfe1e9cb2ab9893/lib/register.lib.php#L52

 

결론은 

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

중복검사를 패쓰해야겠네요

어디가 오류나서 그런건지 잘 모르겠지만..

밑에 부분이면 되지 않을까 싶은데...


<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>

required 를 빼세요

// 닉네임 검사
        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 삭제

답변을 작성하시기 전에 로그인 해주세요.
전체 123,534 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT