Javascript Vue/Vuetify-如何对每个芯片项而不是整个选择输入进行验证
有人知道如何对每个芯片项目进行验证(使用vee validate)吗 我有一段代码:Javascript Vue/Vuetify-如何对每个芯片项而不是整个选择输入进行验证,javascript,typescript,vue.js,vuetify.js,vee-validate,Javascript,Typescript,Vue.js,Vuetify.js,Vee Validate,有人知道如何对每个芯片项目进行验证(使用vee validate)吗 我有一段代码: <v-select class="elevation-0 mt-border-bottom" v-model="PhoneNumber" label="Add phone number" chips tags solo prepend-icon="phone" clearable :error-messages="errors.collect('Phone Number
<v-select
class="elevation-0 mt-border-bottom"
v-model="PhoneNumber"
label="Add phone number"
chips
tags
solo
prepend-icon="phone"
clearable
:error-messages="errors.collect('Phone Number')"
v-validate="'required|numeric'"
data-vv-name="Phone Number"
required
>
<template slot="selection" slot-scope="data">
<v-chip
close
outline
dark
@input="remove(data.item)"
:selected="data.selected"
>
<strong>{{ data.item }}</strong>
</v-chip>
</template>
</v-select>
<script>
export default {
data () {
return {
PhoneNumber: []
}
},
methods: {
async submitNewNumber () {
await this.$validator.validateAll().then((isValid) => {
if (isValid) {
console.log('submitted')
} else {
return false
}
})
}
}
}
</script>
{{data.item}}
导出默认值{
数据(){
返回{
电话号码:[]
}
},
方法:{
异步submitNewNumber(){
等待此消息。$validator.validateAll()。然后((isValid)=>{
如果(有效){
console.log('submitted')
}否则{
返回错误
}
})
}
}
}
现在验证只在整个电话号码输入上进行。
我想知道我如何使它在每个芯片上工作,在这个输入设置最小值为9,最大值为15
Vuetify-芯片使用:
Vuetify-Vee验证:
Vee验证-验证规则:
谢谢看来
v-chip
没有内置的验证功能。因此,我使用的是默认验证(不是vee验证)。这样,您就可以看到v-select的结果。然后可以循环查看结果并验证每个值
inputRules = [
(v: any) => {
if (!v || v.length < 1)
return 'Input is required';
else if (v.length > 0) {
for (let i = 0; i < v.length; i++) {
if (v[i].length > 9)
return 'Invalid Number';
}
}
else return true;
}
];
inputRules=[
(v:任何)=>{
如果(!v | | v.长度<1)
返回“需要输入”;
否则如果(v.length>0){
for(设i=0;i9)
返回“无效号码”;
}
}
否则返回true;
}
];
{{data.item}}
试验
为此,我们必须
//ES6代码
从“vee验证”导入{extend}
从“验证器”导入{isEmail,isArray}
//例如,检查每个芯片是否包含有效的电子邮件
扩展(“chipUrlRule”,函数(val){
如果(!isArray(val)| val.length<0){
return“输入至少一封电子邮件”
}
for(设i=0;i
<v-form ref="form" v-model="valid" lazy-validation>
<v-select
class="elevation-0 mt-border-bottom"
v-model="phoneNumber"
label="Add phone number"
chips
tags
solo
prepend-icon="phone"
clearable
data-vv-name="Phone Number"
required
:rules="inputRules"
>
<template slot="selection" slot-scope="data">
<v-chip
close
outline
dark
@input="remove(data.item)"
:selected="data.selected"
>
<strong>{{ data.item }}</strong>
</v-chip>
</template>
</v-select>
<v-btn @click.native="submitNewNumber">Test</v-btn>
</v-form>