vue的el-form的rules的使用举例
时间: 2024-03-11 16:49:30 浏览: 61
vue使用实例
在Vue中,使用 `element-ui` 的表单组件 `el-form`,可以通过 `rules` 属性来定义表单验证规则。以下是一个简单的例子:
```html
<template>
<el-form :model="form" :rules="rules" ref="form">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input v-model.number="form.age"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
age: ''
},
rules: {
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
{ min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' }
],
age: [
{ required: true, message: '请输入年龄', trigger: 'blur' },
{ type: 'number', message: '年龄必须为数字', trigger: 'blur' },
{ validator: this.checkAge, trigger: 'blur' }
]
}
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
console.log('表单验证通过')
} else {
console.log('表单验证失败')
}
})
},
checkAge(rule, value, callback) {
if (value < 18) {
callback(new Error('年龄不能小于18岁'))
} else {
callback()
}
}
}
}
</script>
```
在上面的例子中,我们定义了一个表单,包含了两个输入框:姓名和年龄。在 `rules` 属性中,我们为每个输入框定义了一组验证规则。其中,`required` 表示必填项,`min` 和 `max` 分别表示最小值和最大值,`trigger` 表示验证的时机,`blur` 表示失去焦点时验证。对于年龄这个输入框,我们还定义了一个自定义的验证函数 `checkAge`,用来检测年龄是否小于 18 岁。
在表单提交时,我们通过 `this.$refs.form.validate` 方法进行表单验证。这个方法会返回一个布尔值,表示表单验证是否通过。如果验证通过,我们可以提交表单;如果验证失败,我们可以提示用户重新填写表单。
注意,在自定义验证函数中,需要使用 `callback` 回调函数来返回验证结果。如果验证通过,可以直接调用 `callback()`,如果验证失败,需要调用 `callback(new Error('错误信息'))`。
阅读全文