I try to automatically fill the newsletter2go form with customer data. The form is getting created dynamically with a javascript code which I got from the newsletter2go backend.
But I found out, that the form does not work anymore if I fill it by using javascript!? It works perfectly fine if I fill it manually by hand.
I executed this code from the developer console:
var inputEmail = document.getElementsByClassName("newsletterInput")[0],
inputVorname = document.getElementsByClassName("newsletterInput")[1],
inputNachname = document.getElementsByClassName("newsletterInput")[2],
selectAnrede = document.getElementsByClassName("newsletterSelect")[0];
if (inputEmail.value == "") {
inputEmail.value = '[email protected]';
}
if (selectAnrede.value == "") {
selectAnrede.value = 'm';
}
if (inputVorname.value == "") {
inputVorname.value = 'Edward';
}
if (inputNachname.value == "") {
inputNachname.value = 'Black';
}
The form is getting filled but if I submit then I get to see Sorry, an error has occurred. Please check your data.
Request Payload at this point:

Why does it fail?
If the browser auto-fills the form, then it works btw.
The way the form works is that it only gets updated
onchange. That means if you trigger that manually, your code will work.Since this seems a bit like a workaround, a cleaner solution would be to implement it similar to a sample form implementation found on the Newsletter2Go homepage.
The corresponding help article can be found here (only available in German atm).
BTW, Newsletter2Go offers a recipient profile link that automatically fills the form with customer data. Maybe you can just use that instead.