1.1.4 • Published 9 years ago
vue-validator-manage v1.1.4
##插件要解决的问题
解决vue-validator插件不能用于自定义组件的问题。
####使用validator插件时会遇到这样的问题
// 使用
<validator name="validation">
<mycomponent></mycomponent>
</validator>
<template id="template">
<div>
<input type="text" v-validate:username="['required']">
</div>
</template>
// js部分
Vue.component('mycomponent',{
template: '#template'
});
// result结果
Uncaught TypeError: Cannot read property 'manageValidation' of undefined 结论:vue-validator无法管理自定义组件的验证。
####本插件主要为了解决上述问题。
- 引入本插件,每一个自定义组件需要采用vue-validator的用法。
- 再给自定义组件用上v-fieldset指令,这样就可以把这些自定义组件归为一组,统一验证管理了。
- 并且还可以给表单元素写上v-fieldname指令,配合v-model指令。这样就可以收集需要提交的数据,可以通过调用vue实例的getFieldsData方法得到。
// 使用
<div id="app">
<my-component v-fieldset="aaa"></my-component>
<my-component2 v-fieldset="bbb"></my-component2>
<input type="submit" v-if="validation.valid" @click="submit">
<h2>验证结果:</h2>
<pre>{{validation|json}}</pre>
</div>
// 自定义组件模板部分,使用v-fieldname会收集此表单的数据,以v-fieldname的值为key,以v-model的值为value.
<template id="template">
<div>
<validator name="validation">
<input type="text" v-fieldname="username" v-validate:username="['required']">
</validator>
</div>
</template>
<template id="template2">
<div>
<validator name="validation">
<input type="text" v-fieldname="username2" v-validate:username2="['required']">
</validator>
</div>
</template>
// js部分
Vue.component('mycomponent',{
template: '#template',
data:function(){
return {
username:""
}
}
});
Vue.component('mycomponent2',{
template: '#template2',
data:function(){
return {
username2:""
}
}
});
new Vue({
el: '#app',
data: {
validation: {},
},
methods: {
submit: function() {
// 会得到使用v-fieldname指令的表单数据
console.log(this.getFieldsData());
}
}
})##指令
###v-fieldname
表单提交的name值,配合v-model使用,和v-model的值绑定。 对于普通的标签,如果没有v-model,需要有v-text指令,和v-text指令的内容绑定
###v-fieldset
表单分组名,每一个业务组件,凡是有需要提交的数据,都需要加这个字段; 例:
<my-component v-fieldset="aaa"></my-component>##validation
###字段验证结果
- valid: 字段有效时返回 true,否则返回 false。
- invalid: valid 的逆.
- touched: 字段获得过焦点时返回 true,否则返回 false。
- untouched: touched 的逆.
- modified: 字段值与初始值不同时返回 true,否则返回 false。
- dirty: 字段值改变过至少一次时返回 true,否则返回 false。
- pristine: dirty 的逆.
- errors: 字段无效时返回存有错误信息的数据,否则返回 undefined。
###全局结果
- valid: 所有字段都有效时返回 true,否则返回 false。
- invalid: 只要存在无效字段就返回 true,否则返回 false。
- touched: 只要存在获得过焦点的字段就返回 true,否则返回 false。
- untouched: touched 的逆。
- modified: 只要存在与初始值不同的字段就返回 true,否则返回 false。
- dirty: 只要存在值改变过至少一次的字段就返回 true,否则返回 false。
- pristine: 所有字段都没有发生过变化时返回 true,否则返回 false。
{
// 整体验证结果
"valid": false,
"invalid": true,
"touched": false,
"untouched": true,
"dirty": false,
"pristine": true,
"modified": false,
// fieldset=='aaa'字段的验证结果
"aaa": {
"valid": false,
"invalid": true,
"touched": false,
"untouched": true,
"modified": false,
"dirty": false,
"pristine": true,
"errors": [
{
"field": "username2",
"validator": "required",
"message": "required you name !!"
}
]
},
}##方法
- getFieldsData 获得需要提交的表单数据
##事件名
- form-valid 表单验证通过时触发
其余的顾名思义
- 'form-invalid';
- 'form-touched';
- 'form-untouched';
- 'form-dirty';
- 'form-pristine';
- 'form-modified';
1.1.4
9 years ago
1.1.3
9 years ago
1.1.1
9 years ago
1.1.0
9 years ago
1.0.22
9 years ago
1.0.21
9 years ago
1.0.20
9 years ago
1.0.19
9 years ago
1.0.18
9 years ago
1.0.17
9 years ago
1.0.16
9 years ago
1.0.15
9 years ago
1.0.13
9 years ago
1.0.12
9 years ago
1.0.11
9 years ago
1.0.10
10 years ago
1.0.9
10 years ago
1.0.8
10 years ago
1.0.7
10 years ago
1.0.6
10 years ago
1.0.5
10 years ago
1.0.4
10 years ago
1.0.3
10 years ago
1.0.1
10 years ago
1.0.0
10 years ago