使用el-input数字校验,输入汉字之后校验取消不掉

[复制链接]
发表于 2025-7-9 22:49:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
先说说复现方式
本来input是只能输入数字的,然后你不鉴戒输入了汉字,触发校验了,然后这时候,你发现校验取消不掉了
就如许了

咋办啊,你一看校验没错啊,各种number啥的也写了,发现没问题啊
  1. <el-input
  2.   v-number-input
  3.   v-model.number="specification.goodsNum"
  4.   placeholder="对应商品数量"
  5.   maxlength="5"
  6. ></el-input>
  7. goodsNum: [
  8. {
  9.     required: true,
  10.     message: "对应商品数量必填,限输入5个字符",
  11.     trigger: "blur",
  12.   },
  13. ],
复制代码
然后就绞尽脑汁想,哪出问题了呢,又是想失焦之后去掉校验,又是啥啥的,都不好使
你猜怎么着
用最原始的方法
  1. <el-input
  2.   v-model="specification.goodsNum"
  3.   placeholder="对应商品数量"
  4.   maxlength="5"
  5. ></el-input>
  6. const validateNumber = (rule, value, callback) => {
  7. if (!/^\d*\.?\d{0,2}$/.test(value)) {
  8.     callback(new Error("请输入数字,最多2位小数"));
  9.   } else {
  10.     callback();
  11.   }
  12. };
  13. goodsNum: [
  14. { validator: validateNumber, trigger: "blur" },
  15.   {
  16.     required: true,
  17.     message: "对应商品数量必填,限输入5个字符",
  18.     trigger: "blur",
  19.   },
  20. ],
复制代码
对,就如许写,嘎嘎好使,再也不报错了

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表