Syntax
<input type="checkbox" name="topic" value="html" checked>
new FormData(form).getAll("topic")Examples
Checkbox Groups and Submitted Values: working example
Save as an HTML file and open it in a browser. Expected result: Initially submission displays html; selecting CSS too displays html, css; clearing both displays None.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Working example</title>
</head>
<body>
<form id="topics">
<fieldset><legend>Topics</legend>
<label><input type="checkbox" name="topic" value="html" checked> HTML</label>
<label><input type="checkbox" name="topic" value="css"> CSS</label>
</fieldset>
<button type="submit">Show selection</button>
</form>
<output id="selection"></output>
<script>
document.querySelector("#topics").addEventListener("submit", event => {
event.preventDefault();
const values = new FormData(event.currentTarget).getAll("topic");
document.querySelector("#selection").textContent = values.join(", ") || "None";
});
</script>
</body>
</html>- Expected result: Initially submission displays html; selecting CSS too displays html, css; clearing both displays None.
- Explicit value attributes avoid the default checkbox value on.
- An empty result means no boxes in this group contributed entries.
Best practices
- Use getAll for repeated names rather than converting directly to a plain object.
- Group related choices with fieldset and legend.
Browser compatibility
Support applies to the named feature, not every attribute or behaviour in this article. Versions refer to browsers, not operating systems.
<input> type="checkbox"
Desktop
- Chrome
- Supported
From 1 - Firefox
- Supported
From 1 - Safari
- Supported
From 1 - Edge
- Supported
From 12 - Opera
- Supported
From 15
Mobile
- Safari on iOS
- Supported
From 1 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 1
Firefox
- From 1
Safari
- From 1
Edge
- From 12
Opera
- From 15
Safari on iOS
- From 1
Chrome for Android
- From 18
Firefox for Android
- From 4
Samsung Internet
- From 1.0
<input> checked
Desktop
- Chrome
- Supported
From 1 - Firefox
- Supported
From 1 - Safari
- Supported
From 1 - Edge
- Supported
From 12 - Opera
- Supported
By 12.1 (possibly earlier)
Mobile
- Safari on iOS
- Supported
From 1 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 1
Firefox
- From 1
Safari
- From 1
Edge
- From 12
Opera
- By 12.1 (possibly earlier)
Safari on iOS
- From 1
Chrome for Android
- From 18
Firefox for Android
- From 4
Samsung Internet
- From 1.0
FormData
Desktop
- Chrome
- Supported
From 5 - Firefox
- Supported
From 4 - Safari
- Supported
From 5 - Edge
- Supported
From 12 - Opera
- Supported
From 12
Mobile
- Safari on iOS
- Supported
From 5 - Chrome for Android
- Supported
From 18 - Firefox for Android
- Supported
From 4 - Samsung Internet
- Supported
From 1.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 5
Firefox
- From 4 · Before Firefox 7, specifying a Blob as the data to append to the object, the filename reported in the Content-Disposition HTTP header was an empty string, resulting in errors on some servers. Starting with Firefox 7, the filename blob is sent.
Safari
- From 5
Edge
- From 12
Opera
- From 12
Safari on iOS
- From 5
Chrome for Android
- From 18
Firefox for Android
- From 4 · Before Firefox for Android 7, specifying a Blob as the data to append to the object, the filename reported in the Content-Disposition HTTP header was an empty string, resulting in errors on some servers. Starting with Firefox for Android 7, the filename blob is sent.
Samsung Internet
- From 1.0
FormData.getAll
Desktop
- Chrome
- Supported
From 50 - Firefox
- Supported
From 39 - Safari
- Supported
From 11.1 - Edge
- Supported
From 18 - Opera
- Supported
From 37
Mobile
- Safari on iOS
- Supported
From 11.3 - Chrome for Android
- Supported
From 50 - Firefox for Android
- Supported
From 39 - Samsung Internet
- Supported
From 5.0
MDN BCD record for this feature · MDN reference
Support history and limitations
Chrome
- From 50
Firefox
- From 39
Safari
- From 11.1
Edge
- From 18
Opera
- From 37
Safari on iOS
- From 11.3
Chrome for Android
- From 50
Firefox for Android
- From 39
Samsung Internet
- From 5.0
MDN BCD 8.1.5 · Dataset built 2026-10-08 · Mapping reviewed 2026-10-21. These dates are not individual browser-test or claim-verification dates. Unknown means the data does not establish support.