解决iView中InpuNuber限定小数位时,输入光标经常后移的问题

问题场景:

  • InputNumber组件在设置precision精度后,每次输入都会自动填充导致光标后移,影响输入体验。
<InputNumber :precision="2" :min="0.01" style="width:100%" v-model="value"/>

期待效果:

  • 如输入1.22就直接输入而不是出现输入1,变为1.00的情况。

原因:

  • 在iView的InputNumber组件中,对数字精度precision的验证是直接用toFixed(2)以后的值替换的,才导致每次输入都会被新值所覆盖

解决:

  • 修改源码。(简单粗暴,需谨慎)
//重写iview InputNumber浮点方法
iView.InputNumber.computed.precisionValue = function () {
  let arr = (this.currentValue + '').split('.')
  if (this.precision && arr[1] && this.precision < arr[1].length)
    return this.currentValue.toFixed(this.precision)
  return this.currentValue;
};
发布了114 篇原创文章 · 获赞 146 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/Sophie_U/article/details/84030643