vue.js - iview表单验证在使用v-for的时候验证出错。

查看:724
本文介绍了vue.js - iview表单验证在使用v-for的时候验证出错。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我是用v-for循环渲染了option后,表单验证一直出错,之后我把数据直接加在HTML中后验证又正常了,这是为什么?是因为bug还是我用的方式不对?


HTML代码部分:

<div id="app">
    <i-form id="form" :rules="ruleValidate" ref="formItem" :model="formItem">
        <Form-item label="楼宇" prop="building">
            <i-select v-model="formItem.building" placeholder="请选择">
                <i-option v-for="el in formItem.buildingEl" :value="el.value">{{el.text}}</i-option>
            </i-select>
        </Form-item>
    </i-form>
</div>


js部分:

_app = new Vue({
    el:"#app",
    data:{
        formItem:{
            building:"",
            buildingEl:[
                {value:1,text:"yi"},
                {value:2,text:"er"},
                {value:3,text:"san"},
            ],
        },
        ruleValidate:{
            building: [
                { required: true,message: '必须选择楼宇', trigger: 'change' }
            ]
        }
    },
})

解决方案

iview内部用async-validator: https://github.com/yiminghe/a...

默认校验数据为string类型的,然而你这个select用的value是number类型的,所以修改如下(校验添加type):

 ruleValidate:{
        building: [
            { type: 'number', required: true, message: '必须选择楼宇', trigger: 'change' }
        ]
  }

这篇关于vue.js - iview表单验证在使用v-for的时候验证出错。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆