JSFiddle - React, Tailwind, and code Playground
HTML
<form class="haha">
name <input type="text" name="user_name" />
</form>
<form class="haha">
zzz <input type="text" name="zzz" value="123" />
</form>
<form class="haha">
zzz <input type="text" name="zzz" value="456" />
</form>
<form class="haha">
email <input type="email" name="user_email" />
</form>
<pre id="out"></pre>
JavaScript
const formSelector = '.haha';
window.addEventListener('submit', submitHandler);
function submitHandler(evt) {
if (event.target.matches(formSelector)) {
evt.preventDefault();
const forms = Array.from(document.querySelectorAll(formSelector));
const formDataAll = forms.reduce(function collectFormsData(fd, form) {
for (const [key,val] of new FormData(form).entries()) {
fd.append(`${key}[]`, val);
}
return fd;
}, new FormData());
debugPrint(formDataAll); // for test only
// add your AJAX send here !!!
}
}
// for test only
function debugPrint(formDataAll) {
const data = [];
for(const [k,v] of formDataAll.entries()) {
data.push([k, v]);
}
out.textContent = JSON.stringify(data, null, 4);
console.table(data);
}