회원가입이 빈 경고창이 뜨며 정상적으로되지 않습니다.
본문
안녕하세요 많은 고수 회원님들 ㅠ
질문이 있습니다.
http://theicon.kr/plat/bbs/register.php
해당 사이트 개발중 회원가입을 달려고 만드는 도중
회원 이미지 업로드가 필요하여 구성한다음 문제가 생겼습니다.
1. 혹시나 이미지 업로드 구성한것에 문제가 생겨서 그런가 했는데
같은 페이지를 쓰는 로그인 상태에서의 '회원정보수정' 은 아무 문제없이 잘 됩니다.
2. 새로 회원가입을 하려고 submit 를 누르면 아이디 부분에 포커스가 맞춰지며 빈 경고창이 뜹니다.
3. 테스트로 아이디 부분 체크를 안하고 넘어가보려고 하면 이번에 이메일부분에서 똑같이 막히구요.
폼안에 회원 이미지 넣는 부분 외에는 손댄것 없는데
무언가 자바스크립트 단에서 문제가 생긴것 같습니다.
혹시 어느 단계에서 이런 빈 오류 메세지를 출력하게 되는지 ...
문제를 거슬러 올라가 라이브러리를 봐도
빈 경고 메세지를 출력할 일이 없는데 정말 모르겠습니다...
ㅠㅠㅠ
답변 3
쓰레드가 너무 길어서 새로 답변 답니다.
jquery.register_form.js 파일에서는 wrest.js와는 별도로
중복값(mb_id, email, hp, nick 등은 고유한 값을 가져야 하기때문이죠) 체크를 위한 로직들이 들어가 있구요.
해당 중복값 체크를 위해 ajax로 db에 조회해서 고유한 값인지를 체크하죠.
wrest.js 는 서브밋 전에 입력된 값들의 validation 체크를 위한 로직들이 구현되어 있습니다.
document.forms['form1'].reset();
이 부분이 문제인것 같습니다.
document.forms['form1'].reset();
위 코드는 불필요한 코드로 에러만 생성하고 있구요. 삭제하시면 됩니다.
빈값에서 포커스가 맞춰지는 부분은
그누보드에서 기본 제공하는 wrest.js 에서 필수 input 입력체크를 하는 부분때문에 그렇습니다.
fregisterform_submit() 함수내에 각 입력단 validation check 해놓으셨던데..
해당 함수에서 체크하기 이전에 wrest.js 에서 먼저 체크를 거치게 되는거죠.
/js/wrest.js 파일하단을 살펴보시면
function wrestInitialized() {
for (var i = 0; i < document.forms.length; i++) {
if (document.forms[i].onsubmit) {
document.forms[i].oldsubmit = document.forms[i].onsubmit;
}
document.forms[i].onsubmit = wrestSubmit;
}
}
$(document).ready(function(){
// onload
wrestInitialized();
});
위와 같이 폼의 submit 이전에 wrest.js 를 먼저 거치게 되어있는 구조입니다.
다시 회원가입 폼에서 보시면 각 input 태그내에 보시면 required attribute 가 있습니다.
required attribute 가 정의되어 있는 태그는 wrestRequired 가 실행되어
해당 입력이 비어있다는 alert msg 를 리턴해주게됩니다.
설명이 장황하였는데..
/js/wrest.js 파일에서 required 로 검색해보시면 언급해 드린사항에 대해 이해가 가실거에요.
그나저나 직접 기획하셨는지는 모르지만.. 재미난 서비스를 기획하셨네요. 기대됩니다. ;-)
!-->