Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- supabase 페이지네이션
- materialicons
- react
- 스크롤이벤트
- 리액트네이티브아이콘
- 슬라이딩윈도우
- async
- reactnative
- 이진탐색
- meatadata
- app.post
- 글또10기
- javascript
- set
- 상속
- extends
- 배열중복요소제거
- TS
- Next.js
- mainapplication.kt
- interface
- Spring
- 타입스크립트
- 페이지네이션
- generic
- Filter
- app:compiledebugkotlin
- 안드로이드빌드에러
- map
- array
Archives
- Today
- Total
rhanziy
JS - id, pwd 유효성 검사 복습하다가 안됐던거. 본문
const id = document.getElementById('id').value;
const pwd = document.getElementById('pwd').value;
$('form').on('submit', function(e){
if(id == ""){
alert('아이디를 입력해주세요.');
return false;
}
if(pwd == "") {
alert('비밀번호를 입력해주세요.');
return false;
}
if(pwd.length <= 6) {
alert('비밀번호가 6글자 이하입니다.');
return false;
}
$('form').submit();
});
id, pwd 변수에 value값을 처음부터 담아서 검증하고 싶었는데 실행이 생각대로 안됐다.
대체 이유가 뭐지~ 하면서 let으로도 바꿔보고 var로도 바꿔보는 삽질 시작했지만
결국 변수 실행 순서 과정에서 나는 오류였다.
Q. 자주 물을 것 같은 질문
var 유저답안 = document.querySelector('#answer').value;
이걸 이벤트리스너 바깥에 넣으면 왜 안되나요?
A. 변수를 언제 만들지 잘 결정해야합니다.
<script>안에 그냥 있는 코드는 새로고침시 1회 실행됩니다.
이벤트리스너 안에 있는 코드는 이벤트 발동시 1회 실행됩니다.
const id = document.getElementById('id');
const pwd = document.getElementById('pwd');
$('form').on('submit', function(e){
if(id.value == ""){
alert('아이디를 입력해주세요.');
return false;
}
if(pwd.value == "") {
alert('비밀번호를 입력해주세요.');
return false;
}
if(pwd.value.length <= 6) {
alert('비밀번호가 6글자 이하입니다.');
return false;
}
$('form').submit();
});
요소만 변수 선언하고 이벤트리스너에서 value값으로 접근하면 잘 동작한다.
참고: https://tecoble.techcourse.co.kr/post/2021-04-25-hoisting/
'Html_css_js' 카테고리의 다른 글
JS - localStorage로 장바구니 기능 구현하기(+중복제거) (0) | 2022.11.10 |
---|---|
JS - e.target.dataset 접근 + 제이쿼리 (0) | 2022.11.07 |
TS - generic인자로 다형성 구현 (0) | 2022.11.01 |
TS - 추상클래스 및 인터페이스 (0) | 2022.10.29 |
css. flex? grid? flexbox의 마지막 행을 정렬하는 몇 가지 방법(펌) (0) | 2022.03.14 |
Comments