diff --git a/src/directive.ts b/src/directive.ts index e347b48..4b7d824 100644 --- a/src/directive.ts +++ b/src/directive.ts @@ -42,13 +42,12 @@ export const vMaska: MaskaDirective = (el, binding) => { } let mask = masks.get(input) - if (!mask) { + if (mask) { + mask.update(opts) + } else { mask = new MaskInput(input, opts) masks.set(input, mask) - } else { - mask.update(opts) + // delay for possible v-model change + setTimeout(() => mask?.checkValue(input)) } - - // delay init to wait for v-model value - setTimeout(() => mask?.checkValue(input)) } diff --git a/src/mask-input.ts b/src/mask-input.ts index 5715974..f67e448 100644 --- a/src/mask-input.ts +++ b/src/mask-input.ts @@ -43,15 +43,13 @@ export class MaskInput { private init(inputs: HTMLInputElement[], defaults: MaskOptions): void { for (const input of inputs) { - const inited = this.items.has(input) - - this.items.set(input, new Mask(parseInput(input, defaults))) - - if (!inited) { + if (!this.items.has(input)) { input.addEventListener('input', this.inputEvent) input.addEventListener('beforeinput', this.beforeinputEvent) - this.checkValue(input) } + + this.items.set(input, new Mask(parseInput(input, defaults))) + this.checkValue(input) } }