当前位置: 首页 > news >正文

el-input 限制只能输入负数、正数或2位小数的数值

需求

el-input需要指定输入格式,当键盘事件触发时限制只能输入负数、正数或2位小数的数值。

解决方案

自定义校验数字输入的键盘事件方法函数。

具体实现步骤

1、创建验数字输入的键盘事件方法

 /*** 校验数字输入的键盘事件* @param {Event} event - 键盘事件对象* @param {Object} options - 配置项* @param {boolean} options.allowNegative - 是否允许负数,默认true* @param {boolean} options.allowDecimal - 是否允许小数,默认true* @param {number} options.decimalPlaces - 小数位数,默认2* @returns {boolean} - 返回是否允许当前输入*/
validateNumberKeypress(event, options = {}) {const { allowNegative = true, allowDecimal = true, decimalPlaces = 2 } = optionsconst keyCode = event.keyCode ? event.keyCode : event.which// 允许数字const isNumber = keyCode >= 48 && keyCode <= 57// 允许负号const isDash = keyCode === 45 && allowNegative// 允许小数点const isDot = keyCode === 46 && allowDecimal// 如果不是允许的字符,阻止输入if (!isNumber && !isDash && !isDot) {event.preventDefault()return false}const value = event.target.value// 如果是负号,只允许在开头输入一次if (isDash && value.includes('-')) {event.preventDefault()return false}// 如果是小数点,只允许输入一次if (isDot && value.includes('.')) {event.preventDefault()return false}// 限制小数位数if (allowDecimal && value.includes('.')) {const parts = value.split('.')if (parts[1] && parts[1].length >= decimalPlaces && isNumber) {event.preventDefault()return false}}return true
}

2、el-input绑定校验方法

  <el-inputv-model="formInfo.amountYear"clearable@click.native.stop@keypress.native="onlyNumber"></el-input>

写在最后

validateNumberKeypress可直接复制进行使用,最好加上@click.native.stop防止事件冒泡。

相关文章:

  • 详解JVM的底层原理
  • JVM 什么是逃逸分析?它有哪些优化手段?
  • 前端根据后端返回的excel二进制文件流进行导出下载
  • 内存编码手册:整数与浮点数的二进制世界
  • OSCP - Proving Grounds - DriftingBlues6
  • 鸿蒙智行多款重磅新品发布,开启智慧出行新篇章
  • 【DVWA 靶场通关】 File Inclusion(文件包含漏洞)
  • 【八大排序】冒泡、直接选择、直接插入、希尔、堆、归并、快速、计数排序
  • C++学习:六个月从基础到就业——面向对象编程:虚函数与抽象类
  • 【Maven】手动安装依赖到本地仓库
  • 【C++】priority_queue的底层封装和实现
  • 线性代数 | 知识点整理 Ref 2
  • 考研单词笔记 2025.04.17
  • 从“链主”到“全链”:供应链数字化转型的底层逻辑
  • 青少年编程与数学 02-016 Python数据结构与算法 25课题、量子算法
  • 【C/C++】深入理解指针(二)
  • 考道路运输安全员证应具备哪些经验?
  • IDEA使用jclasslib Bytecode Viewer查看jvm字节码
  • 机器学习有多少种算法?当下入门需要全部学习吗?
  • 设计模式每日硬核训练 Day 14:组合模式(Composite Pattern)完整讲解与实战应用
  • 病愈出院、跳大神消灾也办酒,新华每日电讯:农村滥办酒席何时休
  • 白玉兰奖征片综述丨海外剧创作趋势观察:跨界·融变·共生
  • 艺术稀缺性和价值坚守如何构筑品牌差异化壁垒?从“心邸”看CINDY CHAO的破局之道
  • 端午小长假前夜火车票今日开抢,多个技巧提高购票成功率
  • 李强:把做强国内大循环作为推动经济行稳致远的战略之举
  • 为何选择上海?两家外企提到营商环境、人才资源……