vue view 表单验证正常逻辑

<template>
    <Form ref="formInline" :model="formInline" :rules="ruleInline" inline>
        <FormItem prop="user">
             <InputNumber :max="100" :min="0" step="1" v-model="formInline.user"></InputNumber>
        </FormItem>
        <FormItem prop="password">
           <InputNumber :max="100" :min="0" step="1" v-model="formInline.password"></InputNumber>
        </FormItem>
        <FormItem>
            <Button type="primary" @click="handleSubmit('formInline')">登录</Button>
        </FormItem>
    </Form>
</template>
<script>
    export default {
        data () {
           const user = (rule, value, callback) => {
                if (value == 0) {
                    callback(new Error('用户名不能为空'));
                } else {
                    callback();
                }
            };
            const password = (rule, value, callback) => {
                if (value == 0) {
                    callback(new Error('密码不能为空'));
                } else {
                    callback();
                }
            };
            return {
                formInline: {
                    user: 0,
                    password: 0
                },
                ruleInline: {
                    user: [
                        { required: true, validator: user, trigger: 'change' }
                    ],
                    password: [
                        { required: true, validator: password, trigger: 'change' },
                    ]
                }
            }
        },
        methods: {
            handleSubmit(name) {
                this.$refs[name].validate((valid) => {
                    if (valid) {
                        this.$Message.success('Success!');
                    } else {
                        this.$Message.error('Fail!');
                    }
                })
            }
        }
    }
</script>

 

< template >
< Form ref= "formInline" :model=" formInline" :rules=" ruleInline" inline >
< FormItem prop= "user" >
< InputNumber :max=" 100" :min=" 0" step= "1" v-model=" formInline. user" ></ InputNumber >
</ FormItem >
< FormItem prop= "password" >
< InputNumber :max=" 100" :min=" 0" step= "1" v-model=" formInline. password" ></ InputNumber >
</ FormItem >
< FormItem >
< Button type= "primary" @click=" handleSubmit( 'formInline')" >登录 </ Button >
</ FormItem >
</ Form >
</ template >
< script >
export default {
data () {
const user = ( rule, value, callback) => {
if ( value == 0) {
callback( new Error( '用户名不能为空'));
} else {
callback();
}
};
const password = ( rule, value, callback) => {
if ( value == 0) {
callback( new Error( '密码不能为空'));
} else {
callback();
}
};
return {
formInline: {
user: 0,
password: 0
},
ruleInline: {
user: [
{ required: true, validator: user, trigger: 'change' }
],
password: [
{ required: true, validator: password, trigger: 'change' },
]
}
}
},
methods: {
handleSubmit( name) {
this. $refs[ name]. validate(( valid) => {
if ( valid) {
this. $Message. success( 'Success!');
} else {
this. $Message. error( 'Fail!');
}
})
}
}
}
</ script >

转载于:https://www.cnblogs.com/xkloveme/p/7906612.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值