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)