前言:在做功能的时候发现封装的输入框没法输入0.0,输入0.后再输0则会变成0,开始以为是我验证正则出了问题,效验好正则后经过断点试调才发现问题
原因:里面的逻辑每次输入值都会对值进行Number强转换,0.0会转成0,
chechNum(e) {
if (e.target.dataset.key !== this.identifier) {
return;
}
const val = e.target.value;
if (val) {
const p = new RegExp(this.pattern);
if (p.test(val)) {
const tmp = Number(val);
const num = tmp - this.min > 0 ? tmp : this.min;
this.currentValue = num - this.max < 0 ? num : this.max;
if (num - this.max > 0) {
// this.$toast(this.errorText);
e.target.blur();
this.$messagebox.alert(this.errorText, '提示').then(() => {
this.currentValue = 0;
this.$emit('onChange');
e.target.focus();
this.$forceUpdate();
});
}