Group bindings let you connect multiple inputs like checkboxes or radios to one variable easily. This helps keep your code simple and your UI in sync.
Group bindings in Svelte
<input type="checkbox" bind:group={variable} value="option1"> <input type="checkbox" bind:group={variable} value="option2"> <input type="radio" bind:group={variable} value="choice1"> <input type="radio" bind:group={variable} value="choice2">
The bind:group directive connects all inputs with the same group variable.
For checkboxes, the variable should be an array to hold multiple selected values.
For radio buttons, the variable holds a single value.
selectedFruits. When you check or uncheck, the array updates automatically.<script> let selectedFruits = []; </script> <label><input type="checkbox" bind:group={selectedFruits} value="apple"> Apple</label> <label><input type="checkbox" bind:group={selectedFruits} value="banana"> Banana</label>
selectedColor. Only one can be selected at a time.<script> let selectedColor = ''; </script> <label><input type="radio" bind:group={selectedColor} value="red"> Red</label> <label><input type="radio" bind:group={selectedColor} value="blue"> Blue</label>
This Svelte component lets users pick pizza toppings with checkboxes and size with radio buttons. The selections update the displayed order automatically.
<script> let selectedToppings = []; let selectedSize = ''; </script> <h2>Choose your pizza toppings:</h2> <label><input type="checkbox" bind:group={selectedToppings} value="cheese"> Cheese</label> <label><input type="checkbox" bind:group={selectedToppings} value="pepperoni"> Pepperoni</label> <label><input type="checkbox" bind:group={selectedToppings} value="mushrooms"> Mushrooms</label> <h2>Choose your pizza size:</h2> <label><input type="radio" bind:group={selectedSize} value="small"> Small</label> <label><input type="radio" bind:group={selectedSize} value="medium"> Medium</label> <label><input type="radio" bind:group={selectedSize} value="large"> Large</label> <h3>Your order:</h3> <p>Toppings: {selectedToppings.length > 0 ? selectedToppings.join(", ") : "None"}</p> <p>Size: {selectedSize || "Not selected"}</p>
For checkboxes, the bound variable must be an array to hold multiple values.
For radio buttons, the bound variable holds only one value at a time.
Always set the value attribute on inputs to identify each option.
Group bindings connect multiple inputs to one variable for easy state management.
Use arrays for checkbox groups and single values for radio groups.
They keep your UI and data in sync automatically with less code.
Practice
Solution
Step 1: Understand group binding with checkboxes
Group binding in Svelte with checkboxes uses an array variable to store all selected checkbox values.Step 2: Recognize the effect on state
When a checkbox is checked or unchecked, the array updates automatically to reflect the current selections.Final Answer:
It connects all checkboxes to a single array variable that holds selected values. -> Option AQuick Check:
Checkbox group binding = array variable [OK]
- Thinking each checkbox needs its own variable
- Confusing checkbox groups with radio groups
- Assuming group binding disables inputs
selected in Svelte?Solution
Step 1: Recall Svelte group binding syntax
For radio buttons, Svelte usesbind:groupto connect all radios to one variable.Step 2: Match syntax with options
usesbind:group={selected}, which is the correct syntax for radio groups.Final Answer:
<input type="radio" bind:group={selected} value="A"> -> Option AQuick Check:
Radio group binding syntax = bind:group [OK]
- Using bind:value instead of bind:group
- Using bind:checked which is for single checkbox
- Incorrect attribute order or spelling
<script>
let selectedFruits = [];
</script>
<label><input type="checkbox" bind:group={selectedFruits} value="apple"> Apple</label>
<label><input type="checkbox" bind:group={selectedFruits} value="banana"> Banana</label>
<label><input type="checkbox" bind:group={selectedFruits} value="cherry"> Cherry</label>
<p>Selected: {JSON.stringify(selectedFruits)}</p>If the user checks Apple and Cherry, what will be displayed inside the <p> tag?
Solution
Step 1: Understand checkbox group binding behavior
When checkboxes are bound to an array, each checked box's value is added to the array.Step 2: Identify selected checkboxes and output format
User checked Apple and Cherry, so array is ["apple", "cherry"]. JSON.stringify shows this as a JSON array string.Final Answer:
Selected: ["apple", "cherry"] -> Option DQuick Check:
Checkbox group array output = JSON array string [OK]
- Expecting a comma-separated string instead of array
- Confusing selected values with unchecked ones
- Misreading JSON.stringify output format
<script>
let selected = "";
</script>
<input type="checkbox" bind:group={selected} value="x">
<input type="checkbox" bind:group={selected} value="y">
What is the main problem here?
Solution
Step 1: Check variable type for checkbox group binding
Checkbox group binding requires the bound variable to be an array to hold multiple selected values.Step 2: Identify the error in variable initialization
The code uses a string variable instead of an array, causing binding to fail or behave incorrectly.Final Answer:
The variable 'selected' should be an array, not a string, for checkbox group binding. -> Option BQuick Check:
Checkbox group variable must be array [OK]
- Using string instead of array for checkbox group
- Thinking bind:group is only for radios
- Forgetting to set value attribute on inputs
colors and shape respectively?Solution
Step 1: Assign correct variable types for inputs
Checkbox groups bind to arrays to hold multiple selections; radio groups bind to single values (strings).Step 2: Match bindings to input types
Checkboxes usebind:groupwith an array variable; radios usebind:groupwith a string variable.Final Answer:
let colors = [] with bind:group on checkboxes, let shape = '' with bind:group on radios -> Option CQuick Check:
Checkboxes = array, radios = string with bind:group [OK]
- Swapping variable types between checkboxes and radios
- Using bind:value instead of bind:group for groups
- Initializing variables with wrong types
Ready to prove it?
Pass the test and this pattern moves unknown
