1

我正在尝试从我的 DNN (DotNetNuke) 站点中提交一个 mailchimp 表单。通常,您只需删除表单标签并将一些 javascript 放在提交按钮的 onclick 事件中......就像这里。这有效,您可以在这里看到看到。

但是,我正在使用这个弹出模块,因为我希望当有人访问该站点时弹出这个表单。在这种配置中它不起作用。它将表单提交到指定的 URL,但没有传递表单数据。这个页面在这里

几点观察:

  1. 当您查看页面源时,弹出表单位于表单标签内,但 this.form 在脚本中返回 null。
  2. 当您在 Chrome 中检查提交按钮元素时,您会看到 html 表单位于表单标签之外。
  3. 所以也许这个弹出模块有一些javascript在页面加载时移动DOM元素???

我创建了一个js函数来调用输入按钮提交;代码如下:

function submitSubscription(clickedElement){
    $form = $('body').find('form');
    $form.attr('action', 'http://InciteResults.us2.list-manage1.com/subscribe/post?u=6d82b6a028c94cc75005eb4fe&id=1c7ceabac4');
    $form.submit();
}

注意:在此函数中 clickedElement.form 返回 null。

4

1 回答 1

2

因为您的内容不在 a 中<form>,所以您要将其放在 a<form>中以使您的脚本正常工作。您可以动态创建元素,也可以在提交时<form>将内容移回主元素中。<form>尝试这样的事情:

function submitSubscription(clickedElement){
    var $form = $('<form></form>', { action: 'http://InciteResults.us2.list-manage1.com/subscribe/post?u=6d82b6a028c94cc75005eb4fe&amp;id=1c7ceabac4' });
    $('#mc_embed_signup').wrap($form);
    $form.submit();
}
于 2013-09-18T16:00:48.213 回答