[英]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.