Bug reportSep 7, 2026· 0:26· 13 views
Solid.js 1.x: spread on <select> resets value to first option — children mount after value is applied
0:26 total
Comments · 0
Be the first to comment.
Bug report— by SceneRecap AI
mediumdom-expressions / web reactivity bindings
os: macOSbrowser: Chromium 151.0.7922.34viewport: 1280x720application: Solid Playground
Repro steps
- 1.Open Solid Playground with an App component rendering `<select>` elements bound to a value/signal (`value="2"` or `value={selected()}`) with options.
- 2.Include select variants using spread attributes (`{...{}}`) alongside standard select elements.
- 3.Observe the rendered initial selection state across Select A, Select B, and Select C in the preview pane.
Expected
All `<select>` elements configured with value '2' should initialize showing option '2'.
Actual
Select A and Select C default to the first empty/blank option, while only the control Select B correctly initializes with value '2'.
Evidence
visualIn the preview panel, Select A and Select C display empty/blank values with status indicators 'A: blank' and 'C: blank', while control Select B displays '2' ('B: 2').
consoleConsole reports error: 'DOMNode._children is expected to not be null.'
visualClicking dropdowns Select A and Select C shows they default to the blank option instead of selecting '2'.
Issue markdown (copy-paste ready)
### Summary
When rendering `<select>` elements with dynamic bindings or spread attributes in Solid.js, the initial value fails to select the designated option and instead falls back to the first empty option.
### Repro Steps
1. Open Solid Playground with select dropdowns configured to select value `'2'` (e.g., `<select value="2">` and `<select {...{}} value={selected()}>`).
2. Render the preview and inspect the initial dropdown values.
3. Notice Select A and Select C remain blank/unselected while Select B correctly initializes to `'2'`.
### Expected Result
All select elements should correctly reflect the provided initial value `'2'`.
### Actual Result
Select A and Select C fail to select `'2'` and display blank values (`A: blank`, `C: blank`).
*Recorded with SceneRecap.*Your recordings could explain themselves too.
Free plan · silent recordings welcome · bug reports included.
Try SceneRecap free →