vue-element-admin我踩的坑(3)

下拉选择框rule校验问题,发现的问题是选择框根本没选,居然也能校验通过??!!(框体绿色,form的validdate通过)

代码:

tempalete:

<el-form-item label="aaa" prop="listItem">
  <el-select v-loading="loading" v-model="listItem" class="filter-item">
    <el-option v-for="item in itemList" :key="item.id" :label="item.name" :value="item.name"/>
   </el-select>
</el-form-item>

script:

export default{

data() {

return {

listItem: undefined,

rules: {
        listItem: [{ required: true, message: '必填字段', trigger: 'blur' }]
      }

......

尝试了一下,没发现什么问题。最后通过自定义校验,检查下拉框绑定的变量解决:

script:

export default{

data() {

var listRule= (rule, value, callback) => {
      if (this.listItem === '' || this.listItem === undefined || this.listItem === null) {
        callback(new Error('必填字段'))
      } else {
        callback()
      }
    }

return {

listItem: undefined,

rules: {
        getList: [{ validator: listRule, message: '必填字段', trigger: 'blur' }]
      }

......

 

如果标签没有表示必填的红色信号,可以添加一个class:

<el-form-item label="aaa" prop="listItem" class="is-required">

但trigger其实没有生效,这个还搞不清楚。应该可以在组件的相应事件里面使用validateField方法手工触发(没有实际试过)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值