写点什么

Vue 进阶(幺玖零):表单验证 trigger:‘blur‘ OR trigger:‘change‘ 区别

  • 2021 年 11 月 16 日
  • 本文字数:1162 字

    阅读完需:约 4 分钟

Vue进阶(幺玖零):表单验证 trigger:‘blur‘ OR trigger:‘change‘ 区别

一、前言

利用elementUI实现表单元素校验时,出现下拉框内容选中后校验不消失的异常校验情形。



通过去除校验规则中相应元素的trigger:'blur'属性,可解决以上问题。



至于表单校验时,校验元素trigger属性值的选择,需要继续深究。若不设置trigger属性,该属性是否有默认值?

二、表单验证时,trigger:'blur' OR trigger:'change' OR 不设置?

  • el-input输入框的验证,trigger的值选blur,即失去焦点时进行验证。

  • 下拉框(el-select)、日期选择器(el-date-picker)、复选框(el-checkbox)、单选框(el-radio)验证时,trigger的值选择change,即当值发生变化时就进行验证。

2.1 下拉框验证

<el-form-item label="活动区域" prop="region">    <el-select v-model="ruleForm.region" placeholder="请选择活动区域">      <el-option label="区域一" value="shanghai"></el-option>      <el-option label="区域二" value="beijing"></el-option>    </el-select>  </el-form-item>rules: {   region: [     { required: true, message: '请选择活动区域', trigger: 'change' }   ]}
复制代码

2.2 日期选择器验证

<el-form-item prop="date1">  <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style="width: 100%;"></el-date-picker></el-form-item>date1: [  { type: 'date', required: true, message: '请选择日期', trigger: 'change' }],
复制代码

2.3 复选框验证

<el-form-item label="活动性质" prop="type">    <el-checkbox-group v-model="ruleForm.type">      <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>      <el-checkbox label="地推活动" name="type"></el-checkbox>      <el-checkbox label="线下主题活动" name="type"></el-checkbox>      <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>    </el-checkbox-group></el-form-item>type: [ { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' } ],
复制代码

2.4 单选框验证

<el-form-item label="特殊资源" prop="resource">    <el-radio-group v-model="ruleForm.resource">      <el-radio label="线上品牌商赞助"></el-radio>      <el-radio label="线下场地免费"></el-radio>    </el-radio-group>  </el-form-item>
resource: [ { required: true, message: '请选择活动资源', trigger: 'change' } ],
复制代码

三、拓展阅读

发布于: 3 小时前阅读数: 4
用户头像

No Silver Bullet 2021.07.09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
Vue进阶(幺玖零):表单验证 trigger:‘blur‘ OR trigger:‘change‘ 区别