elementUI Form表单校验 不通过问题

遇到一个问题,适用elementUI的表单校验时,select校验总是不通过
代码如下:

<el-form label-width="100px"  :model="addForm" :rules="rules" ref="addForm">
  <el-form-item label="报表" :label-width="formLabelWidth" prop="report">
    <el-select v-model="addForm.reportValue" placeholder="请选择报表" style="width:275px">
      <el-option v-for="item in addForm.reportOptions" :label="item.name" :value="(item.id)*1">
      </el-option>
    </el-select>
  </el-form-item>
</el-form>
<script>
export default {
  data() {
    return {
      addForm: {
        reportValue: '',
      },
      rules: {
        report: [ { required: true, message: '请选择报表', trigger: 'change' } ],
      }
    }
  }
}
</script>

总是报错,就算选择了还是报错如下图
image.png

image.png

经过多方排查,终于找到问题所在:
重点啦!重点啦!
表单中每个item项v-model绑定的data的字段,必须必须必须,和rules中的对应字段,名字名字名字,一样,否则校验时取不到值(undefined),所以无论输入什么或者选择什么都校验不过。

正确代码方式如下

<el-form label-width="100px"  :model="addForm" :rules="rules" ref="addForm">
  <el-form-item label="报表"  prop="reportValue">
    <el-select v-model="addForm.reportValue" placeholder="请选择报表">
      <el-option v-for="item in addForm.reportOptions" :label="item.name" :value="(item.id)*1">
      </el-option>
    </el-select>
  </el-form-item>
</el-form>
<script>
export default {
  data() {
    return {
      addForm: {
        reportValue: '',
      },
      rules: {
        reportValue: [ { required: true, message: '请选择报表', trigger: 'change' } ],
      }
    }
  }
}
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容