# vee-validate
# 2018/12/28學習筆記
## 修改成自定義的error message
```
import zh_TW from "vee-validate/dist/locale/zh_TW";
import VeeValidate, { Validator } from "vee-validate";
Vue.use(VeeValidate);
const dict = {
custom: {
phone: { //name的名稱
length: "長度必須為十個數字" //vee-validate的判斷
}
}
};
Validator.localize("zh_TW", zh_TW);
Validator.localize("zh_TW", dict);
```
## 遇到input type 為 radio的時候的一個小bug~
input type='radio'的時候,加上vee-validate 的name的屬性後,會導致讓vue render失效,實際上不知道為什麼,但能確定是因為radio本來就需要用到name的屬性
# 2018/11/21學習筆記
## 如何使用兩組validate驗證?
使用data-vv-scope
## 以及如何使用regex來驗證輸入?
使用regex的話需要用物件方式{}傳參
## 別名設定?
別名使用data-vv-as
範例:
```
<el-input v-model="email" placeholder="信箱" v-validate="{ required: true,regex: /^auto$|^\d+$/}" data-vv-scope="form_2" data-vv-as="間隔" name="email"></el-input>
<span class="error">{{ errors.first('form_2.email') }}</span>
```
然後在判斷驗證的地方加上scope名稱
```
this.$validator.validateAll("form_2").then(result => {
if (!result) {
return false;
}
//success then do somethings
});
```
# 2018/10/06學習筆記
## VeeValidate 驗證
```
<input v-validate="'required|email'" name="email" type="text">
<span>{{ errors.first('email') }}</span>
methods: {
onSubmit () {
this.$validator.validate().then(result => {
if (!result) {
// do stuff if not valid.
}
});
}
}
```
## VeeValidate comfirm用法
將要比對驗證的欄位加上ref,然後在v-validate加上 comfirmed:{ref_name}
```
<input type="password" placeholder="Password" v-model="password" v-validate="'required'" name="password" ref="password"/>
<input type="password" placeholder="Confirm password" v-model="confirmPassword" v-validate="'required|comfirmed:password'" name="confirm_password"/>
```
## VeeValidate 配置語言,可以透過locale的api設定,也可以用i18n來配置
用Localization API
```
import zh_TW from 'vee-validate/dist/locale/zh_TW';
import VeeValidate, { Validator } from 'vee-validate';
Vue.use(VeeValidate);
Validator.localize('zh_TW', zh_TW);
```
用i18n
```
import VeeValidate from 'vee-validate';
import zh_CN from 'vee-validate/dist/locale/zh_CN'
import VueI18n from 'vue-i18n';
Vue.use(VueI18n)
const i18n = new VueI18n({
locale: 'zh_CN',
})
Vue.use(VeeValidate, {
i18n,
i18nRootKey: 'validation',
dictionary: {
zh_CN
}
});
```