elementui数组验证
时间: 2023-06-12 07:05:56 浏览: 112
vue elementui form表单验证的实现
ElementUI提供了一些组件,可以在表单验证中使用。对于数组的验证,可以使用`el-form`组件的`rules`属性,结合`el-input`或`el-select`等组件。
例如,对于一个数组,要求其长度不超过3,可以这样实现:
```html
<template>
<el-form :model="form" :rules="rules">
<el-form-item label="数组">
<el-select v-model="form.array" multiple>
<el-option label="选项1" value="1"></el-option>
<el-option label="选项2" value="2"></el-option>
<el-option label="选项3" value="3"></el-option>
<el-option label="选项4" value="4"></el-option>
</el-select>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
array: []
},
rules: {
array: [
{ type: 'array', required: true, message: '请选择数组', trigger: 'change' },
{ validator: this.validateArrayLength, trigger: 'change' }
]
}
}
},
methods: {
validateArrayLength(rule, value, callback) {
if (value.length > 3) {
callback(new Error('数组长度不能超过3'))
} else {
callback()
}
}
}
}
</script>
```
在这个例子中,使用了`el-select`组件,并设置了`multiple`属性,表示可以多选。然后,在`el-form-item`中使用了`rules`属性,设置了`array`字段的验证规则。其中,使用了`type: 'array'`表示数据类型是数组,`required: true`表示必填,`message`是错误提示信息,`trigger: 'change'`表示验证的触发时机是在值变化时。另外,还使用了一个自定义的验证函数`validateArrayLength`,用来检查数组长度是否超过了3。如果超过了3,就调用`callback`函数,传入一个`Error`对象,表示验证未通过;否则,调用`callback`函数,表示验证通过。
需要注意的是,当使用`el-select`等组件时,需要设置`multiple`属性,表示可以多选。另外,验证规则中的`type`属性,需要根据实际情况设置,例如`type: 'string'`表示数据类型是字符串,`type: 'number'`表示数据类型是数字等。
阅读全文