mirror of
https://github.com/tenrok/maska.git
synced 2026-05-24 14:04:08 +03:00
Fix of the input event
This commit is contained in:
+7
-2
@@ -410,7 +410,12 @@ new MaskInput("input", {
|
||||
|
||||
# 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 -->
|
||||
## **Vanilla JS**
|
||||
@@ -426,7 +431,7 @@ document.querySelector("input").addEventListener("maska", onMaska)
|
||||
```
|
||||
<!-- tabs:end -->
|
||||
|
||||
Callback will receive custom event contains `detail` property with given structure:
|
||||
Both events contains `detail` property with given structure:
|
||||
|
||||
<!-- tabs:start -->
|
||||
### **Description**
|
||||
|
||||
+9
-2
@@ -86,7 +86,14 @@ export class MaskInput {
|
||||
}
|
||||
|
||||
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 mask = this.items.get(input) as Mask
|
||||
@@ -153,6 +160,6 @@ export class MaskInput {
|
||||
}
|
||||
}
|
||||
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