반응형
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
- unittest
- Android
- VirtualBox
- MAC
- MachineLearning
- centos
- react
- 맥
- ReactNative
- avds
- androidstudio
- qunit
- Chrome
- jest
- build
- webpack
- 네트워크
- node
- IOS
- 센토스
- localserver
- picker
- PYTHON
- linux
- 리눅스
- vsCode
- TensorFlow
- 개발
- xcode
Archives
- Today
- Total
로메오의 블로그
[vue.js] 폼 유효성 검사 본문
반응형
VUE.JS 목록
vue.js 폼 유효성 검사 프로토타입입니다.
HTML Template
<form id="app" @submit="checkForm" action="/something" method="post" novalidate="true">
<p v-if="errors.length">
<b>아래 오류를 수정하세요.:</b>
<ul>
<li v-for="error in errors">{{ error }}</li>
</ul>
</p>
<p>
<label for="name">이름<label>
<input type="text" name="name" id="name" v-model="name">
</p>
<p>
<label for="email">이메일<label>
<input type="email" name="email" id="email" v-model="email">
</p>
<p>
<label for="movie">최애 영화<label>
<select name="movie" id="movie" v-model="movie">
<option>토이스토리</option>
<option>알라딘</option>
<option>겨울왕국</option>
</select>
</p>
<p>
<input type="submit" value="Submit">
</p>
</form>
CSS
#app {
margin: 10px;
}
input,select {
margin-left: 10px;
}
Script
var app = new Vue({
el: "#app",
data: {
errors: [],
name: null,
email: null,
movie: null
},
methods: {
checkForm(e) {
e.preventDefault();
this.errors = [];
if (!this.name) {
this.errors.push("이름은 필수입니다.");
}
if (!this.email) {
this.errors.push("이메일은 필수입니다.");
} else if (!this.validEmail(this.email)) {
this.errors.push("이메일 형식을 확인하세요.");
}
if (!this.errors.length) return true;
},
validEmail: function(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
}
});
codepen
https://codepen.io/romeoh/pen/YzzZmgj
VUE.JS 목록
반응형
'Frontend > Vue' 카테고리의 다른 글
[Vue + typescript] Component 생성하기 (0) | 2021.02.10 |
---|---|
[Vue + typescript] 프로젝트 생성 (0) | 2021.02.09 |
[Vue.js] vue-router 사용하기 (0) | 2019.10.12 |
[Vue.js] http 통신하기 (0) | 2019.10.12 |
[Vue.js] Event 처리 (0) | 2019.10.12 |
Comments