在 DNN 中提交表单,典型答案不起作用

Submit Form in DNN, typical answer not working

本文关键字:典型 答案 不起作用 表单 DNN 提交      更新时间:2023-09-26

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

但是,我正在使用这个弹出模块,因为我希望当有人访问该网站时弹出此表单。在这种配置中,它不起作用。它会将表单提交到指定的 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();
}

注意:在此函数中,单击元素表单返回空值。

因为你的内容不在<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();
}