iview自定义表单验证

本文分享了在后台管理系统中使用iview和vue进行表单验证的经验。关键点包括:iview表单组件的ref、model、rules及prop属性的使用,vue的v-model,以及验证规则在data和validator中的应用。通过示例代码,帮助开发者理解如何在实际项目中进行表单验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天写后台管理系统,写的我都不知道自己是谁了,太复杂了,尤其是在用iview和vue写的时候就更不好搞了,之前用iview做验证的时候也是费了我很大的力气,这几天稍微闲一点,我要把这一点点经验告诉大家,希望能帮到大家。

 <i-form ref= 'formItem' :model="formItem"  :rules='ruleValidate'>
    <form-item label="用户名称" prop='username' >
        <i-input  v-model="formItem.username" placeholder="请输入用户名"></i-input>
    </form-item>
    <form-item label="用户密码" prop="password">
        <i-input v-model="formItem.password" type="password"></i-input>
    </form-item>
    <form-item label="再次密码" prop="rpassword">
        <i-input v-model="formItem.rpassword" type="password"></i-input>
     </form-item>
     <form-item label="用户组" prop="group">
        <i-select v-model="formItem.group">
            <i-option value="0">选择用户组</i-option>
            <i-option v-for="item in group" :value="item.id">{{item.typename}}</i-option>
        </i-select>
     </form-item>
     <form-item label="用户名称" prop='nick'>
         <i-input v-model="formItem.nick"  placeholder="请输入昵称"></i-input>
     </form-item>
     <form-item label="联系电话">
        <i-input v-model="formItem.tel" placeholder="请输入电话"></i-input>
     </form-item>
     <form-item label="联系 Q Q">
          <i-input v-model="formItem.qq" ></i-input>
     </form-item>
  </i-form>

上面这个是html部分用的是iview的表单组件,做验证的得时候首先里面的ref,model,rules是不能缺少的,其次就是里面加上prop属性,用vue的话v-model必不可少。

var vue= new Vue({
            el: '#addModule',
            data(){
                var  validateuser = function(rule, value, callback){
                    if(!value){
                        return callback(new Error("请输入用户名"));
                    }else if(!/^[a-zA-Z\d]+$/.test(value)){
                        return callback(new Error("请正确输入用户名"))
                    }else{
                        callback();
                    }
                };
                var  validatenick = function(rule, value, callback){
                    if(!value){
                        return callback(new Error("请输入用户名称"));
                    }else if(!/^[\u4e00-\u9fa5]+$/.test(value)){
                        return callback(new Error("请正确输入用户名称"))
                    }else{
                        callback();
                    }
                };
                var validatePass = function(rule, value, callback) {
                    if (value === '') {
                        callback(new Error('请输入密码'));
                    } else {
                        callback();
                    }
                };
                var validatePassCheck = function(rule, value, callback){
                    if (value === '') {
                        return callback(new Error('请再次输入密码'));
                    } else if (value !== vue.formItem.password) {
                        return callback(new Error('两次密码不一致'));
                    } else {
                        callback();
                    }
                };
                return{
                    group:[],
                    formItem:{
                        'username':"",
                        'password':"",
                        'rpassword':"",
                        'nick':'',
                        'tel':"",
                        'qq':"",
                        'group':""
                    },
                    ruleValidate:{
                        username    : [{validator: validateuser,trigger: 'blur'}],
                        nick        : [{validator: validatenick,trigger: 'blur'}],
                        password    : [{validator: validatePass, trigger: 'blur' },{min:6,message:'请输入最少6位'}],
                        rpassword   : [{validator: validatePassCheck, trigger: 'blur' },{min:6,message:'请输入最少6位'}],
                        group:[{required: true, type: 'string', message: '请选择分组', trigger: 'change'}],
                    }
                }
            },

上面的是js部分,验证的信息写在data里面,然后在return里面调用,写好的验证规则要在validator(验证器)里面调用,后面的trigger是什么时候触发。
嗯就是这样了,刚开始自己自己琢磨的时候,确实很难,后来做出来之后就差不多明了了。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值