From 675d7775c1b05ae332d71262b9d0088d9b9b222c Mon Sep 17 00:00:00 2001 From: Gerd Date: Sat, 19 Sep 2026 14:07:30 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20oninput-Callback=20zum=20Input-Widget?= =?UTF-8?q?=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- Client/Components/widgets/inputs.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Client/Components/widgets/inputs.ts b/Client/Components/widgets/inputs.ts index 3ed71a2..d722f73 100644 --- a/Client/Components/widgets/inputs.ts +++ b/Client/Components/widgets/inputs.ts @@ -23,11 +23,13 @@ export interface iInput { readonly?: boolean required?:boolean onchanged?: Function + oninput?: Function } /** * 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 - * 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 = { onupdate: (vnode) => { @@ -71,6 +73,9 @@ export const Input:m.Component = { if (vnode.attrs.onchanged != undefined) { attributes['onchange'] = vnode.attrs.onchanged } + if (vnode.attrs.oninput != undefined) { + attributes['oninput'] = vnode.attrs.oninput + } return m("input.w3-input.w3-border", attributes)