diff --git a/packages/svelte/src/internal/client/dom/elements/attributes.js b/packages/svelte/src/internal/client/dom/elements/attributes.js index 9fa78ecf76..dfb3266d88 100644 --- a/packages/svelte/src/internal/client/dom/elements/attributes.js +++ b/packages/svelte/src/internal/client/dom/elements/attributes.js @@ -93,7 +93,11 @@ export function set_checked(element, checked) { */ export function set_selected(element, selected) { if (selected) { - element.setAttribute('selected', ''); + // The selected option could've changed via user selection, and + // setting the value without this check would set it back. + if (!element.hasAttribute('selected')) { + element.setAttribute('selected', ''); + } } else { element.removeAttribute('selected'); }