Visual Studio Code/Visual Studio Code icia 36일차

Visual Studio Code dom 활용한 예제 - 4

swkn 2023. 4. 12. 15:16

회원가입을 할 때 빈칸이면 밑에 알림을 주는 코드를 작성해 볼 수 있다.

더보기
   <body>
      <div class="container text-center mt-5">
         <h2>회원가입</h2>
      </div>

      <div id="email_form" class="container">
         <label for="email">이메일</label>
         <input
            type="text"
            id="member-email"
            name="memberEmail"
            class="form-control"
            value=""
            placeholder="5~20자 이내로 입력"
            onblur="email_check()"
            ;
         />
         <br />
         <h5 id="contents1"></h5>
      </div>

      <div id="password_form" class="container">
         <label for="password">비밀번호</label>
         <input
            type="text"
            id="member-password"
            name="memberPassword"
            class="form-control"
            value=""
            placeholder="숫자만 입력"
            disabled="disabled"
            onblur="password_check()"
         />
         <i class="bi bi-lock" id="lock1"></i>
         <br />
         <h5 id="contents2"></h5>
      </div>

      <div id="password_check_form" class="container">
         <label for="password_check">비밀번호 확인</label>
         <input
            type="text"
            id="member-password-check"
            name="memberPasswordCheck"
            class="form-control"
            value=""
            placeholder="비밀번호랑 같은값 입력"
            disabled="disabled"
            onblur="password_check_check()"
         />
         <i class="bi bi-lock" id="lock1"></i>
         <br />
         <h5 id="contents3"></h5>
      </div>

      <div>
         <input type="button" id="target_btn" disabled="disabled" class="btn btn-primary" value="제출" />
      </div>
   </body>

회원가입 글을 h2로 , 각 email_form , password_form , password_check_form id속성을 가진 것으로 묶어서

onblur 이벤트를 이용해서 함수를 실행시킨다.

이메일에 규정에 맞게 작성되야만 다음 비밀번호가 활성화 , 비밀번호 확인도 마찬가지로 비밀번호가 활성화되면 접근할 수 있으며 비밀번호 칸과 비밀번호 확인칸이 같다면 제출버튼이 활성화되게 된다.

더보기

 

   <script>
      const email_check = () => {
         const entervalue1 = document.getElementById('member-email').value;
         const enter1 = document.getElementById('contents1');
         const passwordUnlock = document.getElementById('member-password');
         if (entervalue1.length === 0) {
            enter1.style.color = 'red';
            enter1.innerHTML = '필수입력입니다';
         } else if (entervalue1.length < 5 || entervalue1.length > 20) {
            enter1.style.color = 'red';
            enter1.innerHTML = '5~20자 이내로 입력해주세요';
         } else if (entervalue1.length <= 20 && entervalue1.length >= 5) {
            passwordUnlock.disabled = false;
            enter1.style.color = 'green';
            enter1.innerHTML = '좋아요.';
         }
         if (entervalue1.length == 0) {
            passwordUnlock.disabled = true;
         }
      };

      const password_check = () => {
         const entervalue2 = document.getElementById('member-password').value;
         const enter2 = document.getElementById('contents2');
         const image = document.getElementById('lock1');
         const passwordUnlock = document.getElementById('member-password-check');
         // const re = document.getElementById()
         if (isNaN(entervalue2)) {
            enter2.style.color = 'red';
            enter2.innerHTML = '숫자만 입력해주세요';
            image.style.color = 'red';
         } else if (entervalue2.length == 0) {
            enter2.style.color = 'red';
            enter2.innerHTML = '필수입력입니다';
            image.style.color = 'red';
         } else {
            passwordUnlock.disabled = false;
            enter2.style.color = 'green';
            enter2.innerHTML = '좋아요!';
            image.style.color = 'green';
         }
         if (entervalue2.length == 0) {
            passwordUnlock.disabled = true;
         }
      };

      const password_check_check = () => {
         const entervalue3 = document.getElementById('member-password-check').value;
         const enter3 = document.getElementById('contents3');
         const image = document.getElementById('lock1');
         if (document.getElementById('member-password').value === entervalue3) {
            const target = document.getElementById('target_btn');
            target.disabled = false;
            enter3.style.color = 'green';
            enter3.innerHTML = '비밀번호가 같습니다';
            image.style.color = 'green';
         } else {
            enter3.style.color = 'red';
            enter3.innerHTML = '비밀번호가 다릅니다';
            image.style.color = 'red';
         }
      };
   </script>

이메일에는 5~20글자 이내로 , 비밀번호는 isNaN을 이용해 숫자만 가능하게 , 비밀번호 확인은 비밀번호 값과 같을 것으로 해놓고 다르게 입력하면 이벤트를 주었다.

간단하게 만들어보았다.