feat: oninput-Callback zum Input-Widget hinzugefügt

Ermöglicht ein Live-Binding der Eingabewerte, damit Eingaben bei einem
Redraw (z.B. durch interaktive Elemente außerhalb des Inputs) nicht
verloren gehen.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
gg committed 2026-09-19 14:07:30 +02:00
1 parent b44ea806ef
commit 675d7775c1
1 file changed
+6 -1
+6 -1
View File
@@ -23,11 +23,13 @@ export interface iInput {
readonly?: boolean readonly?: boolean
required?:boolean required?:boolean
onchanged?: Function onchanged?: Function
oninput?: Function
} }
/** /**
* Diese Komponente stellt ein Html-Input Element dar. Der darzustellende Wert wird einfach mit dem Attribut * Diese Komponente stellt ein Html-Input Element dar. Der darzustellende Wert wird einfach mit dem Attribut
* 'value' übergeben. Der eingegebene Wert muss dann später explizit aus Value abgefragt werden. Es findet also kein * 'value' übergeben. Der eingegebene Wert muss dann später explizit aus Value abgefragt werden. Es findet also kein
* sutomatisches Binding statt. * sutomatisches Binding statt. Über den oninput-Callback kann jedoch ein Live-Binding realisiert werden,
* damit Eingaben bei einem Redraw (z.B. durch interaktive Elemente außerhalb des Inputs) nicht verloren gehen.
*/ */
export const Input:m.Component<iInput> = { export const Input:m.Component<iInput> = {
onupdate: (vnode) => { onupdate: (vnode) => {
@@ -71,6 +73,9 @@ export const Input:m.Component<iInput> = {
if (vnode.attrs.onchanged != undefined) { if (vnode.attrs.onchanged != undefined) {
attributes['onchange'] = vnode.attrs.onchanged attributes['onchange'] = vnode.attrs.onchanged
} }
if (vnode.attrs.oninput != undefined) {
attributes['oninput'] = vnode.attrs.oninput
}
return m("input.w3-input.w3-border", attributes) return m("input.w3-input.w3-border", attributes)