diff options
Diffstat (limited to 'fretboard.mjs')
| -rw-r--r-- | fretboard.mjs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/fretboard.mjs b/fretboard.mjs index 38fdc0f..d862952 100644 --- a/fretboard.mjs +++ b/fretboard.mjs @@ -83,16 +83,15 @@ function openClick(e) { formChanged(elt.closest('form')); } -// export default function (form, { onSave }) { -// } - export default class extends HTMLElement { - static name = 'x-fretboard' + static name = 'x-fretboard'; static register() { console.debug('Registering Element', this.name, this); customElements.define(this.name, this); } + saveEvent = 'x-fretboard-save'; + constructor() { super(); @@ -113,10 +112,17 @@ export default class extends HTMLElement { elt.onmousedown = fretMousedown; elt.onclick = fretClick; }); + form.querySelectorAll('.save').forEach(elt => { elt.onclick = (e) => { - e.preventDefault(); console.log('Fretboard#onSave'); + e.preventDefault(); + const event = new CustomEvent(this.saveEvent, { + bubbles: true, + cancelable: true, + detail: new FormData(form) + }); + this.dispatchEvent(event); }; }) formChanged(form); |
