TIL _ 로그인 양식 및 유효성 검사(vanila js)
8574 단어 문제해결JavaScriptJavaScript
❓문제
- 아이디에 '@'가 포함되고, 비밀번호에 6자리 이상의 값이 입력되었을 경우 로그인 버튼이 활성화되는 양식 구현
1. 해결 방안
- 사고 과정
🔓 (문제 파악) 로그인 버튼이 조건에 따라 활성화/비활성화되도록 조작할 수 있어야 함
🔑 (해결 방안)
button
태그에disabled
속성을 부여하여 버튼의 default 를 비활성화로 지정- ID와 PW의 입력값이 유효할 경우
button
속성을false
로 지정
<button type="button" id="loginBtn" diabled> 로그인 </button>
button
태그는disabled
를 속성으로 가질 수 있습니다.disabled
속성을 부여했을 경우,button
태그는 비활성화 되어 사용자가 클릭할 수 없는 상태가 됩니다.disabled
속성은 boolean 의 속성을 가지며,disabled
속성을false
로 지정할 경우 버튼은 다시 활성화됩니다.
🔓 (문제 파악) 그렇다면 ID와 PW 입력값의 유효성은 어떻게 확인할까?
🔑 (해결 방안)
form
양식에 데이터가 입력되는 이벤트가 발생했을 때 →EventTarget.addEventListener('input', )
를 사용- ID 입력값에 '@'가 포함되어 있는지 검사 →
string.indexOf()
를 사용 - PW 입력값이 6자리 이상인지 검사 →
string.length
를 사용
const loginForm = document.getElementById('loginForm')
const username = document.getElementById('username');
const password = document.getElementById('password');
loginForm.addEventListener('input', () => {
if(username.value.indexOf('@') !== -1 && password.value.length >= 6) {
(ID와 PW의 입력값이 유효할 때 실행 될 코드)
} else {
(ID와 PW의 입력값이 유효하지 않을 때 실행 될 코드)
}
})
🔓 (문제 파악) 최종적으로 ID와 PW 입력값의 유효성에 따라 로그인 버튼 활성화/비활성화 시켜보자
🔑 (해결 방안)
- 입력값이 유효할 경우(조건문이
true
일 경우) →disabled
속성은false
- 입력값이 유효할 경우(조건문이
false
일 경우) →disabled
속성은true
const loginForm = document.getElementById('loginForm');
const username = document.getElementById('username');
const password = document.getElementById('password');
const loginBtn = document.getElementById('loginBtn');
loginForm.addEventListener('input', () => {
if(username.value.indexOf('@') !== -1 && password.value.length >= 6) {
loginBtn.disabled = false;
} else {
loginBtn.disabled = true;
}
})
2. 결과
"작성 내용 중 오류나 오타가 있다면, 댓글로 알려주시면 감사하겠습니다. 주니어 개발자에게 남겨주시는 작은 피드백이 큰 도움이 될 것 같습니다. 고맙습니다 :)"
Author And Source
이 문제에 관하여(TIL _ 로그인 양식 및 유효성 검사(vanila js)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@okcleff/TIL-로그인-양식-및-유효성-검사vanila-js저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)