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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
회원가입시 라디오버튼 소스

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

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

회원로그인

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