zoukankan      html  css  js  c++  java
  • vue 表单验证 rule message bug All In One

    vue 表单验证 rule message bug All In One

    有 rules message ❌

        <el-form-item
            class="is-required"
            label="应用名"
            prop="appName"
            :rules="[
                {
                    required: true,
                    message: '请输入应用名',
                    trigger: 'blur',
                    validator: validateAppName,
                },
            ]">
            <el-input
                style=" 300px;"
                placeholder="4-20个字符,中文占两个字符"
                v-model="ruleForm.appName"
                @change="appNameChange"
            />
        </el-form-item>
    
    
        appNameChange (value) {
            if(value) {
                this.validateFieldByKey('appName');
            }
        },
        validateAppName  (rule, value, callback) {
            const len = Util.getByteLen(value.trim());
            const wordList = this.prohibitedList.filter(item => value.includes(item));
            if (value === '') {
                // callback(new Error(rule.message));
                callback(new Error('请输入应用名'));
            } else if ( len < 4 || len > 20) {
                callback(new Error('4-20个字符,中文占两个字符,请正确输入'));
            } else if (wordList.length > 0) {
                callback(new Error(`包含违禁词:${wordList.join('、')}`));
            } else {
                callback();
            };
        },
    
    

    注释掉 rules message ✅

        <el-form-item
            class="is-required"
            label="应用名"
            prop="appName"
            :rules="[
                {
                    required: true,
                    // message: '请输入应用名',
                    trigger: 'blur',
                    validator: validateAppName,
                },
            ]">
            <el-input
                style=" 300px;"
                placeholder="4-20个字符,中文占两个字符"
                v-model="ruleForm.appName"
                @change="appNameChange"
            />
        </el-form-item>
    
    
        appNameChange (value) {
            if(value) {
                this.validateFieldByKey('appName');
            }
        },
        validateAppName  (rule, value, callback) {
            const len = Util.getByteLen(value.trim());
            const wordList = this.prohibitedList.filter(item => value.includes(item));
            if (value === '') {
                // callback(new Error(rule.message));
                callback(new Error('请输入应用名'));
            } else if ( len < 4 || len > 20) {
                callback(new Error('4-20个字符,中文占两个字符,请正确输入'));
            } else if (wordList.length > 0) {
                callback(new Error(`包含违禁词:${wordList.join('、')}`));
            } else {
                callback();
            };
        },
    
    

    refs



    ©xgqfrms 2012-2020

    www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

    原创文章,版权所有©️xgqfrms, 禁止转载 ️,侵权必究⚠️!


    xgqfrms
  • 相关阅读:
    $.extend 的相关用法
    boxsizing
    用localStorage来存储数据的一些经验
    让input光标一直在最右边
    函数声明和函数表达式的区别
    css动画和jq动画的简单区分
    apply与call简单用法以及判断数组的坑
    replace的运用
    onscroll事件没有响应的原因以及vue.js中添加onscroll事件监听的方法
    解决移动端touch事件(touchstart/touchend) 的穿透问题
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/15562755.html
Copyright © 2011-2022 走看看