在写vue 项目的时候遇到以下问题

1.表单校验中,el-input前面有星号*而el-select前面无星号*,证明校验无效,如下图所示
在这里插入图片描述

相关代码如下

  <el-form-item label="电话" :label-width="formLabelWidth" prop="tel">
    <el-input v-model="addForm.tel" style="width: 350px"></el-input>
  </el-form-item>
  
  <el-form-item label="学院" :label-width="formLabelWidth"  prop="instid">
      <el-select v-model="addForm.instid" placeholder="请选择学院">
        <el-option
          v-for="item in instArray"
          :key="item.value"
          :label="item.label"
          :value="item.value">
        </el-option>
      </el-select>
  </el-form-item>
 ruleAdd:{
	tel: [{
       required: true,
       message: '请输入电话',
       trigger: 'blur'
    }],
    instId: [{
       required: true,
       message: '请选择学院',
       trigger: ['blur','change']
    }],
}

问题总结:原因是el-form-item中的prop属性值和校验规则中的不一致导致
上面例子中一个是instid 一个是instId所以校验无效,不显示星号

2.el-select不像el-input校验那样明了,因为el-input在失去焦点的时候就会提示校验规则而下拉框不会,如下,性别在不选的情况下没有反应

在这里插入图片描述
控制台只有两个输出在这里插入图片描述

大家不要慌,这个不是问题,我们通过提交表单的方式来判断是否校验就可以了
如下图校验成功在这里插入图片描述

3.接着问题2说,点击立即添加按钮之后重新选择下拉框,校验无效,如下图

在这里插入图片描述
相关代码如下:

<el-form-item label="性别" :label-width="formLabelWidth"  prop="sex" >
  <template>
    <el-select v-model="addForm.sex1" placeholder="请选择">
      <el-option
        :key="1"
        label="男"
        :value="1">
      </el-option>
      <el-option
        :key="0"
        label="女"
        :value="0">
      </el-option>
    </el-select>
  </template>
</el-form-item>
sex: [{
   required: true,
   message: '请选择性别',
   trigger: 'blur'
}],

原因1是v-model中的属性值addForm.sex1与prop属性值sex不一致,应该改为addForm.sex即可如下图箭头所示处
在这里插入图片描述有些伙伴发下问题还没有解决,因为还有一个地方会导致同样的问题,原因2如下图所示
在这里插入图片描述
trigger: 'blur'改为trigger: ['blur','change']即可

我们可以看一下开发文档,为什么加上change就可了在这里插入图片描述

以上就是介绍下拉列表验证无效的所有问题,喜欢的收藏

Logo

前往低代码交流专区

更多推荐