2
0
mirror of https://github.com/tenrok/maska.git synced 2026-06-17 19:21:21 +03:00

fix: check input value on every update

For better handling value change without directive, like vanilla case
This commit is contained in:
Alexander Shabunevich
2024-03-30 15:08:44 +03:00
parent 816c49c466
commit 00f7caede8
2 changed files with 9 additions and 12 deletions
+5 -6
View File
@@ -42,13 +42,12 @@ export const vMaska: MaskaDirective = (el, binding) => {
} }
let mask = masks.get(input) let mask = masks.get(input)
if (!mask) { if (mask) {
mask.update(opts)
} else {
mask = new MaskInput(input, opts) mask = new MaskInput(input, opts)
masks.set(input, mask) masks.set(input, mask)
} else { // delay for possible v-model change
mask.update(opts) setTimeout(() => mask?.checkValue(input))
} }
// delay init to wait for v-model value
setTimeout(() => mask?.checkValue(input))
} }
+4 -6
View File
@@ -43,15 +43,13 @@ export class MaskInput {
private init(inputs: HTMLInputElement[], defaults: MaskOptions): void { private init(inputs: HTMLInputElement[], defaults: MaskOptions): void {
for (const input of inputs) { for (const input of inputs) {
const inited = this.items.has(input) if (!this.items.has(input)) {
this.items.set(input, new Mask(parseInput(input, defaults)))
if (!inited) {
input.addEventListener('input', this.inputEvent) input.addEventListener('input', this.inputEvent)
input.addEventListener('beforeinput', this.beforeinputEvent) input.addEventListener('beforeinput', this.beforeinputEvent)
this.checkValue(input)
} }
this.items.set(input, new Mask(parseInput(input, defaults)))
this.checkValue(input)
} }
} }