繁体   English   中英

使用Webflow将AJAX表单提交给Pardot

[英]Submitting an AJAX form to Pardot using Webflow

我将在此处发布另一个问题的跟进: 使用JavaScript URL模拟JSONP响应 我一直在跟踪Steine的答案,并与nickjag的答案结合在一起,最后陷入困境。

我已经成功地将提交的内容传递给了Pardot,我使用了一些循环来获取所有表单名称和值:

makeWebflowFormAjax = function( forms, successCallback, errorCallback ) {
forms.each(function(){
  var form = $(this);
  form.on("submit", function(){
    var container =   form.parent();
    var doneBlock  =  $(".w-form-done", container);
    var failBlock  =  $(".w-form-fail", container);

    var action =    form.attr("action");
    var method =    form.attr("method");
    var data =      form.serialize();
    var dataURI =   {};


    form.find("input, textarea, select").each(function() {
      var inputType = this.tagName.toUpperCase() === "INPUT" && this.type.toUpperCase();
      if (inputType !== "BUTTON" && inputType !== "SUBMIT") {
        dataURI[this.name] = $(this).val();
      }
    });

    dataURI = $.param(dataURI);

    console.log(dataURI);

    // call via ajax
    $.ajax({
      type: method,
      url: action + '?' + dataURI,
      dataType: 'jsonp',
      jsonpCallback: 'callback'
    });

    // prevent default webflow action
    return false;
  });
});
}

我在webflow中创建了两个页面,并在页面的“定制代码”部分中将以下内容作为定制脚本:

<script>
return "callback({ 'result' : 'success' })"
</script>

表单肯定会击中Pardot并传递数据,就像我在准客户数据库中看到的测试一样,但是我在Chrome中遇到控制台错误:Uncaught SyntaxError:Unexpected token <从出现的成功页面返回。 看来我应该做的是基于Pardot在运行功能来显示或隐藏Webflow成功/失败消息后点击的页面。

像这样:

form.hide();
doneBlock.show();
failBlock.hide();

我接下来需要做什么? 我觉得这已经非常接近了,但是我不确定如何将它们绑在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM