질문/조언질답게시판

안녕하세요,

자료글 공부만 하다가 질문을 하나 해봅니다.,

지금 사이트는 완성되잇는상태로 개인게시판만 운영중인데 다름이 아니라 회원가입시 연락처 필수 항목체크를 한상태이구요

다른에러는 없는듯한데 연락처란이 네모칸이 총3개자나요? 예를 들어 02 -xxx - xxxx 이렇게 나가기때문에

여기서 문제는 맨첫칸 02 이부분만 쓰거나 혹은 3칸중에 하나라도 쓰거나 혹은 아무칸에나 숫자외에 한글 혹은 영어 혹은 특수

문자등 아무거나 입력해도 이를 검사를 통하지 않은체 무시하고 회원가입처리가 이뤄지고 잇읍니다. 

그래서 질문인데 이연락처 부분에 숫자외에 문자를 넣거나 빈칸을 남겨두엇을대는  연락처 유효성검사 및 체크를 해서 alert 창

메세지창을 띄워서 수정할수 잇게 하고자 합니다. 그리고 입력이 안된 부분이 잇다면 바로 그칸으로 커서가 자동이동을 하게끔

하고 싶습니다.

초보자고 언어관련 문외한이다보니 혼자하기가 어렵고 버겁스런 관계로 며칠 해보다가 안되서 여기에 질문을 올립니다.

다시정리하면..

1. 회원가입시 연락처를 필수로 받고 싶다.

2. 연락처란에 일번 전화번호나 or 핸드폰을 반드시 입력받고 싶다.(연락처란에는 반드시 숫자만 입력하도록(alert ;숫자만 입력

해야 합니다..자동으로 수정할위치로 커서이동)) 해야하며 3칸중 한칸이라도 비어잇다면 바로 에러메시지를 날려서 ( alert 연락처에

빈칸이 존재합니다.(자동으로 수정할위치로 커서이동).로 알려준다)

3.연락처 란에 가급적 맨 첫칸에 번호를 지정할수 잇는 지역번호및 핸드폰 (02,051,...010,011...등등의 라디오 버튼을 넣고싶다)

이상입니다..^^&

 

고수님들의 도움을 요청합니다.

  • profile

    1. 회원가입시 연락처를 필수로 받고 싶다. => 관리자 메뉴에서 해당 항목을 필수로 체크하는 부분이 있을 거예요

    2. 연락처란에 일번 전화번호나 or 핸드폰을 반드시 입력받고 싶다.(연락처란에는 반드시 숫자만 입력하도록(alert ;숫자만 입력해야 합니다..자동으로 수정할위치로 커서이동)) 해야하며 3칸중 한칸이라도 비어잇다면 바로 에러메시지를 날려서 ( alert 연락처에 빈칸이 존재합니다.(자동으로 수정할위치로 커서이동).로 알려준다)
    => 스크립트를 쓰는 게 좋습니다. (국내 회선 사용자만 가입 받는다면) 정규식을 이용해 첫번째 칸을 반드시 0으로 시작하게 하고, 두번째 칸은 0으로 시작 못하게 하고, 전체적으로는 숫자 이외에는 아예 입력을 못하게 하는 input이니 keyup 같은 이벤트를 걸어줘야 합니다(모바일을 위해 해당 필드들에 number 타입 지정을 해주면 더 좋겠구요). 그리고 만약을 위해 최종적으로도 blur나 submit 이벤트를 통해 유효성 테스트를 해서 alert 띄우고 문제되는 부분으로 커서를 이동하게 하는 focus 메소드를 걸구요.

    3.연락처 란에 가급적 맨 첫칸에 번호를 지정할수 잇는 지역번호및 핸드폰 (02,051,...010,011...등등의 라디오 버튼을 넣고싶다)
    => 이것은 코어를 직접 개조하는 것도 방법이지만, 되도록이면 스크립트를 사용해서 load시 첫번째 필드를 select나 radio 형식으로 바꿔주는 게 좋을 것 같습니다.

    ... 세세하게 설명하면 한도 끝도 없겠지만 대략 이 정도의 접근 방법을 택하시면 괜찮을 것 같다는 생각이 드네요. 여러모로 손이 많이 가는 작업이긴 해요ㅜ 고생이 많으십니다;;

  • profile ?
    댓글 감사합니다 윤산님. ㅎㅎ 그러나 말씀하신 내용은 충분히 이해는가나 실제적으로 제가 필요한건 워낙 초보다 보니 어디어떤파일을 어떤식으로 수정하면 된다는 보다 구체적인 답변을 원합니다.(물론 쉽지 않겟지만)
  • profile
    아 그리고 습작 삼아 만들어봤던 게 있는데 원하시는 형식은 아니겠지만 한번 참고해보세요.
    https://xetown.com/topics/1151762
    (해당 애드온에 대한 자세한 설명은 링크 문서 내에 링크시킨 또 다른 문서에 있을 겁니다)
  • profile ?

    일단 링크참조는 해보겟읍니다.그리고  https://www.xpressengine.com/tip/19367398  ,  https://www.xpressengine.com/tip/19368936  ,  https://www.xpressengine.com/tip/16343298 ,   https://www.xpressengine.com/tip/19055818  이사이트를 참조햇읍니다만.이게 제코어버젼과 맞지않아서 인지 저 일부파일내용이 제것과 달라서 정확히 수정을 못하겟읍니다. 혹시 가능한 방법잇다면 조언부탁드립니다.감사합니다.

  • ?

    윤삼님.https://www.xpressengine.com/tip/19367398 이부분도 소스를 잘넣으면 될거 같은데 어떤 소스를 건드리는건지 알수가 없내요.

  • ? profile
    루트 > modules > member > skins > [사용하시는 스킨과 동일한 이름을 가진 폴더]로 들어가면
    signup_form.html 이라고 있을 건데요.
    거기 하단에 스크립트 구문을 넣고 적절하게 응용하시면 좋을 것 같습니다.
  • profile ?
    일단 한번 해보고 질문좀 드리겟읍니다. 머리가 어지러워서 잠시 휴식중입니다.
  • ?
    윤삼님이 일러준 링크대로 가서 ap_tel_to_text.0.0.2.zip 이제품을 다운받아서 애드온에 올렷는데 아무 반응이 없읍니다, 저는 그저 xe기본 회원가입폼에서만 적용되면 되거든요? 제가 방식을 어찌해야하는지 설명서를 읽어봐야 되나요|? 설정을 보니 아무것도 없고 그저 적용할 게시판만 적용햇는데요.
  • ? profile
    아, 그거는 회원가입이 아니라 일반 게시판 확장변수 때 쓰는 거예요.
    그래서 당장에는 적용이 안 될 겁니다.
    그냥 참조해보시라고 링크 드린 건데ㅜㅜ
  • profile ?
    아. 가입폼에 적용가능한 방법을 알려주면 좋겟읍니다 ㅎㅎ
  • ? profile
    애드온 폴더에서 다음의 소스 파일들을 찾아 아래 나온 "순서대로" 수정하시고, 사이트에 적용시켜 보시겠어요?

    ap_tel_to_text.addon.php 수정
    - 16행(교체) : if ( $this->act === 'dispMemberSignUpForm' )
    - 20~39행 : 삭제
    - 11~14행 : 삭제

    write.js 수정
    - 5행(교체) : var tel_text = $('input[type=tel]');
    - 29행(새로 추가) : input.parent().html(input.parent().html().replace(/\-/g, ''));

서버에 요청 중입니다. 잠시만 기다려 주십시오...