uview框架
前端样式
<view style="font-size: 28rpx;margin-top: 10rpx;">
<u--input fontSize="30" border="none" type="digit" focus=true @input="limitDecimalPlaces"
v-model="balance" inputAlign="right" placeholder="(选填)" maxlength="9"></u--input>
</view>
JS代码
limitDecimalPlaces(value) {
// 使用正则表达式来校验和修正输入
// 这里我们允许输入数字、点(但只能有一个点,且点在第二位之后)
// 允许小数点后两位
let reg = /^(\d+)(\.\d{0,2})?$/;
let that=this;
// 如果输入不符合规则,则尝试修正
if (!reg.test(value)) {
// 尝试去掉多余的点或小数位
let parts = value.split('.');
if (parts.length > 2) {
// 如果有多于一个小数点,只保留第一个
value = parts.slice(0, 2).join('.');
}
if (parts[1] && parts[1].length > 2) {
// 如果小数点后多于两位,则截断
value = `${parts[0]}.${parts[1].slice(0, 2)}`;
}
// 如果输入为空或不符合数字格式,则清空
if (!/^\d+(\.\d{0,2})?$/.test(value)) {
value = '';
}
this.balance=value
console.log(that.balance)
}
},
请问JS绑定的balance能实现效果,但是为什么页面上的input 不会重新赋值呢?
如图,在我输入11.2333这种的时候,页面的console已经是11.23保留小数了,但是页面上同样绑定的v-model还是没变化 为什么不是变成11.23呢?该怎么解决