1个回答

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精度也更简便
回复

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