<form method="POST" action="">
	<input type="text" name="test">
	<input type="submit">
</form>
let submitted = false
const transformFormDataToJSON = formdata => {
	const object = {}
	formdata.forEach((value, key) => {object[key] = value})
}
document.querySelector('form').addEventListener('submit', async event => {
	if (submitted) return
	event.preventDefault()
	const body = JSON.stringify(trasnformFormDataToJSON(new FormData(event.target)))
	await fetch('', { body, method: 'POST'} )
	submitted = true
	event.target.submit()
})
View Compiled
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.