From 648805639fb15c54ee7b025cee9d53217973c34c Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Tue, 18 Jun 2024 16:33:41 +0100 Subject: [PATCH] Update packages/svelte/src/internal/client/dom/elements/attributes.js Co-authored-by: Rich Harris --- .../client/dom/elements/attributes.js | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/elements/attributes.js b/packages/svelte/src/internal/client/dom/elements/attributes.js index 8cb6ccd79e..114f5d0c6d 100644 --- a/packages/svelte/src/internal/client/dom/elements/attributes.js +++ b/packages/svelte/src/internal/client/dom/elements/attributes.js @@ -32,14 +32,18 @@ export function remove_input_attr_defaults(dom) { if (already_removed) return; already_removed = true; - var value_attribute = dom.getAttribute('value'); - var value = dom.value; - set_attribute(dom, 'value', null); - set_attribute(dom, 'checked', null); - - // We want to set the value back to the latest actual input value, rather than the attribute as - // this might have been changed during hydration. - if (value_attribute) dom.value = value; + // Remove the attributes but preserve the values + if (dom.hasAttribute('value')) { + var value = dom.value; + set_attribute(dom, 'value', null); + dom.value = value; + } + + if (dom.hasAttribute('checked')) { + var checked = dom.checked; + set_attribute(dom, 'checked', null); + dom.checked = checked; + } }; // @ts-expect-error