Отправка формы AJAX в Pardot с помощью Webflow - PullRequest
0 голосов
/ 16 мая 2018

Я публикую продолжение другого вопроса, заданного здесь: Имитация ответа JSONP с URL-адресами JavaScript .Я следовал за ответом Стейна в сочетании с ответом 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;
  });
});
}

Я создал две страницы в веб-потоке со следующими параметрами в виде пользовательского сценария в разделе пользовательского кода на странице:

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

Форма определенно нажимает Pardot и передает данныепока я вижу тесты в базе данных перспективы, но я получаю консольную ошибку в Chrome: Uncaught SyntaxError: неожиданный токен <возвращается со страницы успеха, она появляется.То, что я должен делать, основано на странице, которую Pardot нажимает после запуска функции, чтобы показать или скрыть сообщения об успехе / неудаче веб-потока. </p>

Примерно так:

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

Есть мысли о том, что мне нужно делать дальше?Я чувствую, что это очень близко, но я просто не знаю, как их связать.

...