我想知道这种提示el-form表单能否实现?

输入框为空没啥问题,问题出在标签名是否重复,重复的精确到lnput框变红提示,以及每行的第二个框的值必须是上一行最后一个框里的值,不是就提示变红,求解?
图片.png

阅读 2.4k
2 个回答

可以,用 computed 计算或者用自定义检验规则都可以实现。

计算属性里面可以这样写:

<tempalte>
  <el-form ref="elForm" :model="formData" :rules="formRules" xxx>
    ...
    <el-row v-for="(item,index) in reocrdList">
      <el-col :span="8" >
        <el-form-item :prop="'fieldA-'+index"> ...
        <el-form-item :prop="'fieldB-'+index"> ...
        <el-form-item :prop="'fieldC-'+index"> ...
      </el-col>
    </el-row>
  </el-form>
</tempalte>
<script>
export default {
  ...
  computed:{
    formRules(){
      const { formData, recordList } = this
      return reocrdList.map((item,index)=>{
        return {
          ['fieldA-'+index]:[
             { required: true, message: '请输入xx', trigger: 'blur' },
             { validator: this.checkDuplicate, trigger: 'blur' },
          ],
          ['fieldB-'+index]:[
             { required: true, message: '请输入xx', trigger: 'blur' },
             { min: formData['fieldB-'+index-1]||0 , message: '不可小于xxx', trigger: 'blur' }
          ],
          ['fieldC-'+index]:[
             { required: true, message: '请输入xx', trigger: 'blur' },
             { min: formData['fieldB-'+index]||0 , message: '不可大于xxx', trigger: 'blur' }
          ]
        }
      })
    }
  },
}
</script>

具体情况就看你自己想要怎么写了。不一定非要这样的,但是校验内容就可以这样做。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题