参数 trigger 的值有 'blur' | 'change' | ['change', 'blur']
blur 失去焦点时进行验证
常用:对 input
输入框的验证
change 当值发生变化时进行验证
常用:下拉框select
,日期选择框date-picker
,复选框checkbox
,单选框radio
问题①:
对el-input输入框的验证,trigger的值选blur,即失去焦点时进行验证。
下拉框(el-select)、日期选择器(el-date-picker)、复选框(el-checkbox)、单选框(el-radio)验证时,trigger的值选择change,即当值发生变化时就进行验证。
遇到的bug:
弹框选择数据之后input中有值,但是验证还是不通过:
点击input输入框出现弹框,弹框选择数据之后,input输入框回显数据,但是trigger使用blur,(当你点击input的时候出现弹框此时就验证了,但是还没选数据呢)此时验证未查到数据,所以,此时输入框中即使有数据,也会报错提示请输入内容。
解决:
trigger:'change'
当值发生变化时再让它验证
问题②:
普通输入框,有值仍然验证不通过
<el-form :rules="rules" ref="rulesRef">
<el-form-item prop="input1">
<el-input placeholder="请输入内容" v-model="input1"></el-input>
</el-form-item>
</el-form>
data(){
return{
rules:{
input1:[{required:true,message:'请输入',trigger:'blur'}]
}
}}
如上写完之后,有值仍然验证不通过。
发现el-form没有绑定:model。加上即可。