diff --git a/src/compile/render-dom/wrappers/Element/Binding.ts b/src/compile/render-dom/wrappers/Element/Binding.ts index 828d664001..a34a9466fc 100644 --- a/src/compile/render-dom/wrappers/Element/Binding.ts +++ b/src/compile/render-dom/wrappers/Element/Binding.ts @@ -111,7 +111,7 @@ export default class BindingWrapper { let update_conditions: string[] = this.needs_lock ? [`!${lock}`] : []; - const dependency_array = [...this.node.expression.dependencies] + const dependency_array = [...this.node.expression.dependencies]; if (dependency_array.length === 1) { update_conditions.push(`changed.${dependency_array[0]}`) @@ -121,6 +121,14 @@ export default class BindingWrapper { ) } + if (parent.node.name === 'input') { + const type = parent.node.get_static_attribute_value('type'); + + if (type === null || type === "" || type === "text") { + update_conditions.push(`(${parent.var}.${this.node.name} !== ${this.snippet})`) + } + } + // model to view let update_dom = get_dom_updater(parent, this);