收藏文章 楼主

form表单验证错误提示语太长无法全部展示的问题

版块:AIGC   类型:普通   作者:AI绘图   查看:73   回复:0   获赞:0   时间:2023-10-31 09:52:37

项目场景:`

form表单验证错误提示语太长无法全部展示,导致提示语折叠,如下图:
在这里插入图片描述


解决方案:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最终效果:
在这里插入图片描述


附录代码:

需要返回错误信息的部分写个空callback(new Error(' '));,用this.quotaNameErrFlag = true;来控制v-show="quotaNameErrFlag"展示错误提示,再给提示语写个样式

直接上热乎的代码:

<el-form class="quota-edit-form" ref="quotaForm" :rules="rule" :model="quotaFormData" label-width="125px" label-position="left">
  <el-form-item prop="quotaName" label="配额名称">
     <el-input v-model="quotaFormData.quotaName" placeholder="请输入" class="form-item-width" maxlength="32"></el-input>
     <div v-show="quotaNameErrFlag" class="quotaname-err-style">
          支持大小写字母、数字、“-”、“.”、“/”、“(”、“)”、“(”、“)”、下划线、中文,不超过32个字
     </div>
  </el-form-item>
  ......

在这里插入图片描述

在需要展示错误信息的输入框下面写个错误提示语句:

<div v-show="quotaNameErrFlag" class="quotaname-err-style">
    支持大小写字母、数字、“-”、“.”、“/”、“(”、“)”、“(”、“)”、下划线、中文,不超过32个字
</div>

定义控制变量:

quotaNameErrFlag: false,

需要返回错误信息的部分写个空callback(new Error(' '));,用this.quotaNameErrFlag = true;看控制v-show="quotaNameErrFlag"展示错误提示,再给提示语写个样式

var validateName = (rule, value, callback) => {
      if (value) {
        if (value === this.quotaFormData.quotaCode) {
          callback(new Error('配额名称与配额编码不能相同'));
        }
        let reg = /^[0-9A-Za-z\u4e00-\u9fa5-./_(())]{0,32}$/;
        if (!reg.test(value)) {
          this.quotaNameErrFlag = true;
          callback(
            new Error(
              ' '
              // '支持大小写字母、数字、“-”、“.”、“/”、“(”、“)”、“(”、“)”、下划线、中文,不超过32个字'
            )
          );
        } else {
          this.quotaNameErrFlag = false;
        }
        callback();
      } else {
        callback(new Error('请输入配额名称'));
      }
    };

在这里插入图片描述

样式:

.quotaname-err-style {
  color: #f56c6c;
  font-size: 12px;
  width: 450px;
  margin-bottom: -19px;
  line-height: 18px;
}

附加代码:

export default {
  data() {
    var validateName = (rule, value, callback) => {
      if (value) {
        if (value === this.quotaFormData.quotaCode) {
          callback(new Error('配额名称与配额编码不能相同'));
        }
        let reg = /^[0-9A-Za-z\u4e00-\u9fa5-./_(())]{0,32}$/;
        if (!reg.test(value)) {
          this.quotaNameErrFlag = true;
          callback(
            new Error(
              ' '
              // '支持大小写字母、数字、“-”、“.”、“/”、“(”、“)”、“(”、“)”、下划线、中文,不超过32个字'
            )
          );
        } else {
          this.quotaNameErrFlag = false;
        }
        callback();
      } else {
        callback(new Error('请输入配额名称'));
      }
    };
    var validateCode = (rule, value, callback) => {
      if (value) {
        if (value === this.quotaFormData.quotaName) {
          callback(new Error('配额编码与配额名称不能相同'));
        }
        let reg = /^[0-9A-Za-z\u4e00-\u9fa5-._]{0,32}$/;
        if (!reg.test(value)) {
          callback(
            new Error(
              '支持大小写字母、数字、“-”、“.”、下划线、中文,不超过32个字'
            )
          );
        }
        callback();
      } else {
        callback(new Error('请输入配额编码'));
      }
    };
    var checkLevel = (rule, value, callback) => {
      var reg = /^[0-9]{1}$/;
      if (!value) {
        return callback();
      } else if (!reg.test(value)) {
        return callback(new Error('配额级别只能为一位数字'));
      } else {
        return callback();
      }
    };
    return {
     
      rule: {
        quotaName: [
          {
            required: true,
            validator: validateName,
            trigger: ['blur', 'change'],
          },
        ],
        quotaCode: [
          {
            required: true,
            validator: validateCode,
            trigger: ['blur', 'change'],
          },
        ],
        regionId: [
          { required: true, message: '请选择节点', trigger: 'change' },
        ],
        productCode: [
          { required: true, message: '请选择产品', trigger: 'change' },
        ],
        limitValue: [
          { required: true, message: '请输入配额数量', trigger: 'blur' },
          { pattern: /^\d+$/, message: '配额数量为非负整数' },
        ],
        level: [{ validator: checkLevel, trigger: 'blur' }],
      },
      rules: {
        productCode: [
          { required: true, message: '请选择产品', trigger: 'blur' },
        ],
      },
      formLabelWidth: '120px',
      quotaNameErrFlag: false,
    };
  },

 
回复列表
默认   热门   正序   倒序

回复:form表单验证错误提示语太长无法全部展示的问题

Powered by 7.12.10

©2015 - 2025 90Link

90link品牌推广 网站地图

您的IP:10.3.167.80,2025-06-22 23:25:38,Processed in 1.2095 second(s).

豫ICP备2023005541号

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
免责声明
  • 1、本网站所刊载的文章,不代表本网站赞同其观点和对其真实性负责,仅供参考和借鉴。
  • 2、文章中的图片和文字版权归原作者所有,如有侵权请及时联系我们,我们将尽快处理。
  • 3、文章中提到的任何产品或服务,本网站不对其性能、质量、适用性、可靠性、安全性、法律合规性等方面做出任何保证或承诺,仅供读者参考,使用者自行承担风险。
  • 4、本网站不承担任何因使用本站提供的信息、服务或产品而产生的直接、间接、附带或衍生的损失或责任,使用者应自行承担一切风险。

侵权删除请致信 E-Mail:3454251265@qq.com