mirror of
https://github.com/tenrok/maska.git
synced 2026-06-20 20:00:34 +03:00
Fix of the input event
This commit is contained in:
+7
-2
@@ -410,7 +410,12 @@ new MaskInput("input", {
|
|||||||
|
|
||||||
# Events
|
# Events
|
||||||
|
|
||||||
You can subscribe to `maska` event, fired every time when mask applied:
|
There are two events you can subscribe to get the masking result:
|
||||||
|
|
||||||
|
- `maska` event
|
||||||
|
- `input` event
|
||||||
|
|
||||||
|
They are essentially the same, but the `input` event could be fired by any input logic, and the `maska` event is library specific.
|
||||||
|
|
||||||
<!-- tabs:start -->
|
<!-- tabs:start -->
|
||||||
## **Vanilla JS**
|
## **Vanilla JS**
|
||||||
@@ -426,7 +431,7 @@ document.querySelector("input").addEventListener("maska", onMaska)
|
|||||||
```
|
```
|
||||||
<!-- tabs:end -->
|
<!-- tabs:end -->
|
||||||
|
|
||||||
Callback will receive custom event contains `detail` property with given structure:
|
Both events contains `detail` property with given structure:
|
||||||
|
|
||||||
<!-- tabs:start -->
|
<!-- tabs:start -->
|
||||||
### **Description**
|
### **Description**
|
||||||
|
|||||||
+9
-2
@@ -86,7 +86,14 @@ export class MaskInput {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private readonly inputEvent = (e: Event | InputEvent): void => {
|
private readonly inputEvent = (e: Event | InputEvent): void => {
|
||||||
if (e instanceof InputEvent && e.data === '__MASKA__') return
|
if (
|
||||||
|
e instanceof CustomEvent &&
|
||||||
|
e.type === 'input' &&
|
||||||
|
e.detail != null &&
|
||||||
|
'masked' in e.detail
|
||||||
|
) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const input = e.target as HTMLInputElement
|
const input = e.target as HTMLInputElement
|
||||||
const mask = this.items.get(input) as Mask
|
const mask = this.items.get(input) as Mask
|
||||||
@@ -153,6 +160,6 @@ export class MaskInput {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
input.dispatchEvent(new CustomEvent<MaskaDetail>('maska', { detail }))
|
input.dispatchEvent(new CustomEvent<MaskaDetail>('maska', { detail }))
|
||||||
input.dispatchEvent(new InputEvent('input', { data: '__MASKA__' }))
|
input.dispatchEvent(new CustomEvent<MaskaDetail>('input', { detail }))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user