使用Webflow

时间:2018-05-15 22:09:56

标签: jquery ajax jsonp pardot webflow

我发布了对此处提出的另一个问题的跟进:Simulate a JSONP response with JavaScript URLs。我正在跟着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中遇到控制台错误:未捕获的SyntaxError:意外的令牌&lt;从成功页面返回它出现。我应该做的似乎是基于Pardot之后运行一个函数来显示或隐藏Webflow成功/失败消息的页面。

这样的事情:

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

关于我接下来需要做什么的任何想法?我觉得它非常接近,但我不确定如何将它们捆绑在一起。

0 个答案:

没有答案