Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以DNN格式提交表格,典型答案无效_Javascript_Jquery_Dotnetnuke - Fatal编程技术网

Javascript 以DNN格式提交表格,典型答案无效

Javascript 以DNN格式提交表格,典型答案无效,javascript,jquery,dotnetnuke,Javascript,Jquery,Dotnetnuke,我正试图从我的DNN(DotNetNuke)网站提交一份mailchimp表单。通常,您只需删除表单标记,并在submit按钮的onclick事件中放入一些javascript。。。。这是有效的,你可以看到 但是,我正在使用这个弹出模块,因为我希望当有人来到这个网站时,这个表单会弹出。在这种配置下,它不起作用。它将表单提交到指定的URL,但没有传递任何表单数据。这一页是 以下是几点观察: 查看页面源代码时,弹出表单位于表单标记中,而this.form在脚本中返回null 当您检查Chrome中的

我正试图从我的DNN(DotNetNuke)网站提交一份mailchimp表单。通常,您只需删除表单标记,并在submit按钮的onclick事件中放入一些javascript。。。。这是有效的,你可以看到

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

以下是几点观察:

  • 查看页面源代码时,弹出表单位于表单标记中,而this.form在脚本中返回null
  • 当您检查Chrome中的submit按钮元素时,您会看到html表单在表单标记之外
  • 因此,可能有一些javascript与这个弹出模块一起在页面加载时移动DOM元素
  • 我创建了一个js函数来调用input按钮submit;代码如下:

    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。

    因为您的内容不在
    中,所以您要将其放入
    中,以便脚本正常工作。您可以动态创建
    元素,也可以在提交时将内容移回主
    中。试着这样做:

    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();
    }
    
    功能提交订阅(点击删除){
    var$form=$('',{操作:'http://InciteResults.us2.list-manage1.com/subscribe/post?u=6d82b6a028c94cc75005eb4fe&;id=1c7ceabac4'});
    $('mc#u embed_signup').wrap($form);
    $form.submit();
    }
    
    弹出窗口很可能将元素移动到表单之外。尝试将表单标签放在弹出窗口中,以便它们随输入一起移动。谢谢@KevinB,但这也不起作用。如果我这样做,并选中clickedElement.form,它将为null。然后,当你点击按钮时,控制台也不会发生任何事情,也不会产生任何错误。我可以确认@KevinB所说的。弹出窗口正在将元素移到窗体外部。使用firefox或firebug进行检查,您将看到。您可以通过ajax发布,或者使用不将元素移动到表单外部的其他弹出窗口(如引导模式),因为元素不在表单内部呈现,所以您可以在标记中包含原始表单元素,而不使用JavaScriptfallback@bdukes是的,我也试过了…实际上我的配置,我在弹出窗口中输入HTML,现在有了标签,但是他们的代码除了将表单移到原始表单标签之外,似乎还去除了表单标签。不知道为什么。看来我得“自己滚”了。感谢所有的投入!