指标
把握element-ui中表单校验的应用
根本步骤-共三步
- 定义验证规定。data()中按格局定义规定
在模板上做属性配置来利用规定(三个配置)
给表单设置
rules
属性传入验证规定给表单设置
model
属性传入表单数据给表单项(Form-Item )设置
prop
属性,其值为设置为需校验的字段名- 手动兜底验证
步骤1-定义表单验证规定
在 data 中,补充定义规定。
格局:
data() { return { rules: { // 字段名1:示意要验证的属性 // 值: 示意验证规定列表。它是一个数组,数组中的每一项示意一条规定。 // 数组中的多条规定会按程序进行 字段名1: [ { 验证规定1 }, { 验证规定2 }, ], 字段名2: [ { 验证规定1 }, { 验证规定2 }, ], } }}
示例
{ required: true, message: '请输出验证码', trigger: 'blur' }, { pattern: /^\d{6}$/, message: '请输出非法的验证码', trigger: 'blur' }, { min: 6, max: 8, message: '长度为6-8位', trigger: 'blur' }
实操代码
data () { return { // 表单验证规定,整体是一个对象 // 键:要验证的字段, 值:是一个数组,每一项就是一条规定 rules: { // 字段名:mobile就示意要验证的 属性 // 值: 是一个数组。数组中的每一项示意一条规定。 mobile: [ { required: true, message: '请输出手机号', trigger: 'blur' } ] } } },
留神:
- rules中的属性名与表单数据项中的属性名必须是统一的。
步骤2-模板中的配置
内容:
- 给 el-form 组件绑定 model 为表单数据对象
- 给 el-form 组件绑定 rules 属性配置验证规定
- 给须要验证的表单项 el-form-item 绑定 prop 属性,留神:prop 属性须要指定表单对象中的数据名称
代码:
<el-form label-width="80px" :model="form" :rules="rules"> <el-form-item label="手机号" prop="mobile"> <el-input v-model="form.mobile"></el-input> </el-form-item> <el-form-item label="明码" prop="code"> <el-input v-model="form.code"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="onSubmit">立刻创立</el-button> <el-button @click="onCancel">勾销</el-button> </el-form-item></el-form>
验收成果
咱们做到这一步时,当用户输出的内容不合乎表单规定要求时,并且某个输入框失焦时,它会给出相应的提醒,当咱们输出的内容符合要求时,谬误提醒会主动隐没。
步骤3-手动兜底验证
格局
element-ui的表单组件.validate(valid => { if(valid) { // 通过了验证 } else { // 验证失败 }})
阐明:
- validate 办法是表单组件自带的,用来对表单内容进行测验。
- 须要在模板中增加对表单组件的援用:ref 的作用次要用来获取表单组件手动触发验证
代码-模板
<el-form label-width="80px" + ref="form" :model="form" :rules="rules">
增加ref来援用el-form组件。
代码
在做提交时进行手动兜底验证,如果通过了验证
doLogin () { alert('我能够做登录了')},submit () { this.$refs.form.validate(valid => { // valid 就是表单验证的后果,如果是true,示意通过了 // console.log(valid) if (valid) { // 通过了验证,你能够做后续动作了 this.doLogin() } })}
总结:
步骤
- 定义验证规定(按element-ui的要求来)
配置模板,利用规定
给表单设置
rules
属性传入验证规给表单设置
model
属性传入表单数据给表单中的元素(Form-Item )设置
prop
属性,其值为设置为需校验的字段名- 手动兜底验证
自定义测验规定的应用格局
场景:
明码不容许是123456
指标
把握自定义测验规定的应用格局
思路
在rules中自定义validator
格局
rules:{ 属性名1: [ { // 留神参数程序 validator: function (rule, value, callback) { // rule:采纳的规定 // value: 被校验的值 // callback是回调函数, // 如果通过了规定测验,就间接调用callback() // 如果没有通过规定测验,就调用callback(谬误对象,在谬误对象中阐明起因) // 例如:callback(new Error('谬误阐明')) }, trigger: 'blur' }]}
落地代码
rules: { name: [{required: true, message:'必须要填入', triggle: 'blur'}], code: [ { validator:(rule, value, callback)=>{ console.log(rule, value, callback) if(value === '123456') { callback(new Error('这是世界上最差的明码了')) } else { callback() } }, triggle: 'blur' }, {min: 6, max:8, message:'长度为6-8位', triggle: 'blur'}, {required: true, message:'必须要填入', triggle: 'blur'}, ]}