일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 유효성 그룹
- Thymeleaf
- Tomcat
- 톰캣
- HTML
- node.js
- C언어
- GUI
- vue-cookies
- 그룹별 유효성 검사
- 타임리프 리로드
- CLASS
- MySQL
- CSS
- chrome mobile debug
- devtools
- 프로그래머스
- 크롬 디버깅
- spring
- C
- Swing
- 프로젝트
- JavaScript
- oracle
- db
- Valid groups
- sqlplus
- 코딩테스트연습
- js
- java
Archives
개발 기록
onsubmit: form 전송 전 검증 방법 본문
form 태그에 input type="text"가 하나면, input 태그에서 엔터를 쳤을 때 submit이 발생한다.
<form method="POST" action="/login/code">
<input type="text"name="code" maxlength="6" />
<button onclick="formSubmit()" type="button">인증</button>
</form>
<script>
function formSubmit() {
const form = document.querySelector('form');
const code = document.querySelector('input').value;
if (code.length >= 6) {
form.submit();
}
}
</script>
위 코드처럼 인증번호를 전송하기 전에 유효성를 하고 서버로 넘겨야 하는데 엔터를 쳐버리면 바로 submit이 되버린다.
form 태그 이벤트 중 onsubmit을 이용하면 submit 전에 필요한 작업을 수행할 수 있다.
<form onsubmit="return isValidCode()" method="POST" action="/login/code">
<input type="text"name="code" maxlength="6" />
<button onclick="formSubmit()" type="button">인증</button>
</form>
<script>
function formSubmit() {
const form = document.querySelector('form');
if (isValidCode()) {
form.submit();
}
}
function isValidCode() {
// 유효성 검사,,,
const code = document.querySelector('input').value;
return code.length < 6;
}
</script>
boolean이 반환 되는 함수 앞에 return을 붙일 시 true이면 submit을 수행하고 false일 경우 submit을 수행하지 않는다.
엔터를 쳤을 때와 버튼을 눌렀을 때 둘 다 유효성 검사 후 submit을 할 수 있다.
'Front-end > javascript' 카테고리의 다른 글
자바스크립트 키보드로 이미지 움직이기 (0) | 2021.03.02 |
---|
Comments