VUE element-ui之form表单中input输入超过规定长度error提醒,并实时显示输入长度,可无限输入

简介: 输入超过规定长度error提醒,并实时显示输入长度,可无限输入

需求:输入超过规定长度error提醒,并实时显示输入长度,可无限输入

步骤:
我的项目中使用校验比较多,所以进行简单的封装:
新建js文件写入下面的函数

export function valieTextLength(rule, value, callback) {
  if (!value) {
    callback()
    return
  }
  const field = rule.field
  const textLengthRules = {
    name: 120,
    code: 60,
    accountPeriod: 20,
    bankName: 60,
    bankAccount: 19,
    taxId: 20,
    contacts: 60,
    address: 160,
    remark: 200,
    tepName: 80 // 权限模板名称
  }
  if (textLengthRules[field] && value.length > textLengthRules[field]) {
    callback(new Error(`${value.length}/${textLengthRules[field]} 内容输入超出范围`))
    return
  }
  callback()
}

需要校验的组件引用使用:

import { valieTextLength } from '@/utils/validate'

data中定义:

data() {
    const valied = (rule, value, callback) => { valieTextLength(rule, value, callback) }
    return {
        rules: {
            name: [ //这里做了三种校验
          { required: true, message: '请输入客户名称', trigger: 'blur' },
          {
            pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9.·-]+$/,
            message: '不支持特殊字符',
            trigger: 'blur'
          },
          { validator: valied }
        ]
        }
    }
}

form表单中prop要和rules中定义校验名一致:

<el-form
   ref="form"
   class="customer-form"
   :model="form"
   label-width="85px"
   :inline="true"
   :rules="rules"
   label-suffix=":"
 >
     <el-form-item label="客户名称" prop="name" class="form-style">
       <el-input v-model.trim="form.name" placeholder="请输入" size="small" class="input-style" />
    </el-form-item>
 </el-form>

看效果:
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/c1e1228120c74518b4a12f1323fe4aa3.png

可以看到我们自定义name长度为120,当用户输入超过120会出现error提示,并实时显示用户输入的字符长度,可以无限输入但是无法通过校验。

相关文章
|
17天前
vue3+Ts 二次封装ElementUI form表单
【10月更文挑战第8天】
172 59
|
27天前
|
JavaScript 数据格式
vue3 + Ant design vue formItem 无法使用嵌套的form表单校验
vue3 + Ant design vue formItem 无法使用嵌套的form表单校验
55 1
|
2月前
|
JavaScript
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
这篇文章介绍了如何使用Ant Design Vue UI框架创建一个简单的后台管理模板,包括创建Vue项目、安装和使用ant-design-vue、以及编写后台管理通用页面的代码和样式。
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
|
2月前
|
JavaScript
Vue+element_Table树形数据与懒加载报错Error in render: “RangeError: Maximum call stack size exceeded“
本文讨论了在使用Vue和Element UI实现树形数据和懒加载时遇到的“Maximum call stack size exceeded”错误,指出问题的原因通常是因为数据中的唯一标识符`id`不唯一,导致递归渲染造成调用栈溢出。
47 1
Vue+element_Table树形数据与懒加载报错Error in render: “RangeError: Maximum call stack size exceeded“
|
3月前
|
JavaScript
vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法
vue element-ui 中el-message重复弹出问题解决 el-message重复弹出解决办法
209 49
|
13天前
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
75 0
|
2月前
|
人工智能 JavaScript 索引
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
这篇文章讨论了在Vue中进行列表渲染时遇到的“Duplicate keys detected”错误。这个错误通常发生在使用 `v-for` 指令渲染列表时,如果没有为每个循环项指定一个唯一的 `key` 属性,或者指定的 `key` 属性值重复了。文章提供了导致错误的原始代码示例,并给出了修正后的代码,通过在 `key` 绑定中加入索引确保 `key` 的唯一性。此外,文章还解释了为什么需要唯一 `key` 以及如何解决这个问题。
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
|
3月前
|
JavaScript 编译器
成功解决:Module build failed: Error: Vue packages version mismatch
这篇文章记录了解决Vue项目中遇到的"Module build failed: Error: Vue packages version mismatch"错误的步骤,原因是项目中Vue依赖的版本不一致,解决方法是删除`node_modules`后重新安装指定版本的Vue和`vue-template-compiler`,确保版本匹配,最终成功运行项目。
成功解决:Module build failed: Error: Vue packages version mismatch
|
3月前
|
JavaScript 前端开发 安全
[译] 在 Vue 组件中分离 UI 和业务逻辑。
[译] 在 Vue 组件中分离 UI 和业务逻辑。
|
3月前
|
计算机视觉
ElementUI——vue2+element-ui 2.x的动态表格和表单
ElementUI——vue2+element-ui 2.x的动态表格和表单
82 1