因此,我在Vanilla JS中编写了一个带掩码的输入,并且遇到一个小错误。因此理想情况下,它应该将输入格式设置为货币,例如输入123的行为如下:$ 0.01 ... $ 0.12 ... $ 1.23 但就目前而言,它的行为如上所述,还包括键入的最后一个字母,因此输出如下所示:$ 0.011 ... $ 0.122 ... $ 1.233 有没有办法来解决这个问题?这样输入的当前字符不会显示在输入中?
这是我正在处理的Codepen链接: https://codepen.io/kkannen/pen/XxGxmQ?editors=0010
let dollars = "0"
let cents = "00"
let inNum = ""
function dollarsAndCents(num) {
const dol = Math.floor(num/100)
const c = num%100
return[dol, c]
}
input.value = `$${dollars}.${cents}`
function masked(e) {
if(!Number(e.key)){
inNum += null
} else {
inNum += Number(e.key)
if (inNum.length <= 2){
const centsArr = cents.split("")
centsArr.shift()
centsArr.push(e.key)
cents = centsArr.join("")
} else {
[dollars, cents] = dollarsAndCents(inNum)
}
input.value = `$${dollars}.${cents}`
}
}