javascript - 在 DNN 中提交表单,典型答案无效

标签 javascript jquery dotnetnuke

我正在尝试从我的 DNN (DotNetNuke) 站点提交一个 mailchimp 表单。通常,您只需删除表单标签并在提交按钮的 onclick 事件中放置一些 javascript... like here .这行得通,你可以看到 here .

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

一些观察:

  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。

最佳答案

因为你的内容不在<form> ,你要把它放在 <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();
}

关于javascript - 在 DNN 中提交表单,典型答案无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860238/

相关文章:

javascript - 如何检测 Kind 是否已经注册

javascript - jQuery:具有缩放功能的 flex 标题/图像?

javascript - FullCalendar 月 View 显示不正确的时间

jquery - jqGrid 如何取消日期字段的格式并以 yyyy-mm-dd 格式发布 mysql DB?

asp.net - 启用并强制执行 SSL 但允许独立的 ASPX 页面使用 SSL

asp.net - 在表格中居中非文本

javascript - 通过附加 URL 参数来循环 URL

Javascript onbeforeunload - 在退出时显示图像

asp.net - 整个网站部分作为 DotNetNuke 模块

javascript - textarea文本未插入到php数据库mysql