我尝试用客户数据自动填写newsletter2go表单。该表单是使用我从newsletter2go后端获取的javascript代码动态创建的。

但是我发现,如果我使用javascript填写表格,该表格将无法使用!如果我手动填充它,效果很好。

我从开发者控制台执行了以下代码:

    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';
    }

表格已填写完毕,但是如果我提交,我会看到对不起,发生了错误。请检查您的数据。

此时请求有效负载:
javascript - Newsletter2Go-用javascript填充表格后无法正常工作?-LMLPHP

为什么会失败?

如果浏览器自动填写表格,那么它将正常工作。

最佳答案

表单的工作方式是仅获取更新的onchange。这意味着,如果您手动触发该代码,则代码将起作用。

由于这似乎是一种解决方法,因此更干净的解决方案是将其实现为类似于Newsletter2Go homepage上的示例表单实现。
相应的帮助文章can be found here(仅在德语atm中可用)。

BTW,Newsletter2Go offers a recipient profile link会自动用客户数据填写表单。也许您可以只使用它。

07-24 09:30