Skip to content

Commit ce373ff

Browse files
committed
chore: apply suggestions from review
1 parent d38820f commit ce373ff

File tree

3 files changed

+9
-10
lines changed

3 files changed

+9
-10
lines changed

packages/svelte/src/internal/client/dom/elements/attributes.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -347,19 +347,19 @@ export function set_attributes(
347347
} else if (key === '__value' || (key === 'value' && value != null)) {
348348
// @ts-ignore
349349
element.value = element[key] = element.__value = value;
350-
} else if (key === 'defaultValue') {
351-
/** @type {HTMLInputElement} */ (element).defaultValue = value;
352-
} else if (key === 'defaultChecked') {
353-
/** @type {HTMLInputElement} */ (element).defaultChecked = value;
354350
} else if (key === 'selected' && is_option_element) {
355351
set_selected(/** @type {HTMLOptionElement} */ (element), value);
356352
} else {
357353
var name = key;
358354
if (!preserve_attribute_case) {
359355
name = normalize_attribute(name);
360356
}
361-
if (value == null && !is_custom_element) {
357+
let is_default_value_or_checked = name === 'defaultValue' || name === 'defaultChecked';
358+
359+
if (value == null && !is_custom_element && !is_default_value_or_checked) {
362360
attributes[key] = null;
361+
// if we remove the value/checked attributes this also for some reasons reset
362+
// the default value so we need to keep track of it and reassign it after the remove
363363
let default_value_reset = /**@type {HTMLInputElement}*/ (element).defaultValue;
364364
let default_checked_reset = /**@type {HTMLInputElement}*/ (element).defaultChecked;
365365
element.removeAttribute(key);
@@ -368,7 +368,10 @@ export function set_attributes(
368368
} else if (key === 'checked') {
369369
/**@type {HTMLInputElement}*/ (element).defaultChecked = default_checked_reset;
370370
}
371-
} else if (setters.includes(name) && (is_custom_element || typeof value !== 'string')) {
371+
} else if (
372+
is_default_value_or_checked ||
373+
(setters.includes(name) && (is_custom_element || typeof value !== 'string'))
374+
) {
372375
// @ts-ignore
373376
element[name] = value;
374377
} else if (typeof value !== 'function') {

packages/svelte/tests/runtime-runes/samples/form-default-value-spread/_config.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ export default test({
6868
assert.htmlEqual(test1_span.innerHTML, 'foo foo foo foo');
6969

7070
after_reset.push(() => {
71-
console.log('-------------');
7271
check_inputs(inputs, 'value', 'x');
7372
assert.htmlEqual(test1_span.innerHTML, 'x x x x');
7473
});
@@ -88,7 +87,6 @@ export default test({
8887
assert.htmlEqual(test2_span.innerHTML, 'foo foo foo foo');
8988

9089
after_reset.push(() => {
91-
console.log('-------------');
9290
check_inputs(inputs, 'value', 'x');
9391
assert.htmlEqual(test2_span.innerHTML, 'x x x x');
9492
});

packages/svelte/tests/runtime-runes/samples/form-default-value/_config.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ export default test({
6868
assert.htmlEqual(test1_span.innerHTML, 'foo foo foo foo');
6969

7070
after_reset.push(() => {
71-
console.log('-------------');
7271
check_inputs(inputs, 'value', 'x');
7372
assert.htmlEqual(test1_span.innerHTML, 'x x x x');
7473
});
@@ -88,7 +87,6 @@ export default test({
8887
assert.htmlEqual(test2_span.innerHTML, 'foo foo foo foo');
8988

9089
after_reset.push(() => {
91-
console.log('-------------');
9290
check_inputs(inputs, 'value', 'x');
9391
assert.htmlEqual(test2_span.innerHTML, 'x x x x');
9492
});

0 commit comments

Comments
 (0)