el-input如何实现限制输入的最大数可变化?

作者站长头像
站长
· 阅读数 20

就是想让输入的根据每一项中有的一个值作为最大值,并且保留一位小数。

回复
1个回答
avatar
test
2024-07-12

一开始

            <el-input type="text" oninput="
                this.value=this.value.replace(/\D*(\d*)(\.?)(\d{0,1})\d*/,'$1$2$3') // 只能输入数字、小数点限制3位
                .replace(/^0+(\d)/, '$1') // 第一位0开头,0后面为数字,则过滤掉,取后面的数字
                .replace(/^\./, '0.')  // 如果输入的第一位为小数点,则替换成 0. 实现自动补全
                .match(/^\d*(\.?\d{0,1})/g)[0] || '' // 数字开头、小数点1位
              "></el-input>

实现了小数点后一位,但是使用:max="5",就是不行,后面换成el-input-number可行,不知道为什么?在oninput内写if(value>5)value=5,最大值就是5,起效,但换成动态值就不行,于是换成

            <el-input-number 
                :max="form.options.score" controls-position="right"
                :precision="1"
               ></el-input-number>

因为oninput在这里对小数点后保留一位不起效,并且precision精度也更简便

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容