我正在尝试从我的 DNN (DotNetNuke) 站点提交一个 mailchimp 表单。通常,您只需删除表单标签并在提交按钮的 onclick 事件中放置一些 javascript... like here .这行得通,你可以看到 here .
但是,我正在使用这个弹出模块,因为我希望这个表单在有人访问该站点时弹出。并且在此配置中它不起作用。它将表单提交到指定的 URL,但没有表单数据被传递。本页为here .
一些观察:
- 当您查看页面源代码时,弹出表单位于表单标记内,而 this.form 在脚本中返回 null。
- 当您检查 Chrome 中的提交按钮元素时,您会看到 html 表单位于表单标签之外。
- 所以也许这个弹出模块有一些 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。
最佳答案
因为你的内容不在<form>
,你要把它放在 <form>
中为了让你的脚本工作。您可以动态创建 <form>
元素,或将您的内容移回主 <form>
当你提交。尝试这样的事情:
function submitSubscription(clickedElement){
var $form = $('<form></form>', { action: 'http://InciteResults.us2.list-manage1.com/subscribe/post?u=6d82b6a028c94cc75005eb4fe&id=1c7ceabac4' });
$('#mc_embed_signup').wrap($form);
$form.submit();
}
关于javascript - 在 DNN 中提交表单,典型答案无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860238/