今天在做一个动态表单规则的需求, 但是赋值给rules规则值之后,初始化的时候或者更改rules,表单就会立即检验报红。

解决办法如下两种:(推荐使用第一种)

第一种:通过form组件属性配置解决(validate-on-rule-change="false")

  该属性是 是否在 rules 属性改变后立即触发一次验证, 我们配置成false,就不会立即触发了

<el-form ref="ruleFormDom" class="formDom" :model="ruleForm" :rules="rules" label-width="180px" :validate-on-rule-change="false">
   <el-form-item label="起止日期">
      <el-col :span="11">
        <el-form-item prop="date1">
          <el-date-picker v-model="ruleForm.date1" type="date" placeholder="选择日期" style="width: 100%;" />
        </el-form-item>
      </el-col>
      <el-col class="line" :span="2">-</el-col>
      <el-col :span="11">
        <el-form-item prop="date2">
          <el-date-picker v-model="ruleForm.date2" type="date" placeholder="选择日期" style="width: 100%;" />
        </el-form-item>
      </el-col>
    </el-form-item>
  </el-form>

第二种:通过js解决

const ruleObj = {
   date1: [
      { required: val, message: '请选择开始日期', trigger: 'change' }
   ],
   date2: [
      { required: val, message: '请选择截止日期', trigger: 'change' }
   ],
}
this.rules = ruleObj
// 在异步队列中,将form的检验状态重置,就可以了
setTimeout(() => {
   this.$refs.ruleFormDom.clearValidate()
}, 0)

 

GitHub 加速计划 / eleme / element
11
1
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:9 个月前 )
c345bb45 1 年前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 1 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐