提交DNN表格,典型答案不起作用

时间:2013-09-17 21:30:57

标签: javascript jquery dotnetnuke

我正在尝试从我的DNN(DotNetNuke)网站提交mailchimp表单。通常,您只需删除表单标记并在提交按钮的onclick事件中添加一些javascript ... like here。这有效,您可以看到here

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

有几点意见:

  1. 当您查看页面源时,弹出窗体位于表单标记内,但是this.form在脚本中返回null。
  2. 当您检查Chrome中的提交按钮元素时,您会看到html表单在表单标签外面。
  3. 所以也许这个弹出模块有一些javascript正在移动页面加载的DOM元素???
  4. 我创建了一个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。

1 个答案:

答案 0 :(得分:2)

由于您的内容不在<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();
}