// Created on savesnippets.com ยท https://savesnippets.com/O06bfhZT4HeF5e function serializeForm(form) { const data = {}; for (const [key, value] of new FormData(form)) { if (key in data) { data[key] = [].concat(data[key], value); } else { data[key] = value; } } return data; } // Usage document.querySelector('form').addEventListener('submit', (e) => { e.preventDefault(); const payload = serializeForm(e.target); console.log(payload); // { name: 'Alice', tags: ['js', 'php'], agree: 'on' } });