美文网首页
uniapp之uView-ui简单表单验证

uniapp之uView-ui简单表单验证

作者: 锋叔 | 来源:发表于2021-10-28 14:38 被阅读0次

    万变不离其宗,有此示例已经够大部分需求。

    form.vue
    <template>
        <view class="form-content">
            <u-form :model="form" ref="uForm" label-width="120">
                <u-form-item label="姓名" prop="name">
                    <u-input v-model="form.name" />
                </u-form-item>
                <u-form-item label="简介" prop="intro">
                    <u-input v-model="form.intro" />
                </u-form-item>
                <u-form-item label="手机号" prop="mobile">
                    <u-input v-model="form.mobile" />
                </u-form-item>
            </u-form>
    
            <u-button @click="submit">提交</u-button>
        </view>
    </template>
    
    <script>
        export default {
            data() {
                return {
                    form: {
                        name: '',
                        intro: '',
                        mobile: null
                    },
                    rules: {
                        name: [{
                            required: true,
                            message: '请输入姓名',
                            // 可以单个或者同时写两个触发验证方式
                            trigger: 'blur'
                        }],
                        intro: [{
                            required: true,
                            min: 5,
                            message: '简介不能少于5个字',
                            trigger: 'blur'
                        }],
                        // 手机号
                        mobile: [{
                                required: true,
                                message: '请输入手机号',
                                trigger: ['change', 'blur'],
                            },
                            {
                                // 自定义验证函数,见上说明
                                validator: (rule, value, callback) => {
                                    // 上面有说,返回true表示校验通过,返回false表示不通过
                                    // this.$u.test.mobile()就是返回true或者false的
                                    return this.$u.test.mobile(value);
                                },
                                message: '手机号码不正确',
                                // 触发器可以同时用blur和change
                                trigger: ['change', 'blur'],
                            }
                        ]
                    }
                };
            },
            methods: {
    
                submit() {
                    this.$refs.uForm.validate(valid => {
                        if (valid) {
                            console.log('验证通过');
                        } else {
                            console.log('验证失败');
                        }
                    });
                }
            },
            // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
            onReady() {
                this.$refs.uForm.setRules(this.rules);
            }
        };
    </script>
    
    <style scoped lang="scss">
        .form-content {
            padding: 30px;
        }
    </style>
    
    

    相关文章

      网友评论

          本文标题:uniapp之uView-ui简单表单验证

          本文链接:https://www.haomeiwen.com/subject/ljdvaltx.html