提交后重置Marketo表格

时间:2017-01-31 20:36:42

标签: forms marketo

我在我的网站上使用了一个嵌入式Marketo表格。

当我点击submit时,我希望表单重置为原始状态。

我需要为此添加什么代码,更好的是我可以在Marketo文档中找到哪些内容?

这是我当前的代码



<script src="//app-sjg.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm"></form>
<script>
  MktoForms2.loadForm("//app-sjg.marketo.com", "819-OWT-537", 1404);
</script>
<script>
  MktoForms2.whenReady(function (form){
    form.onSuccess(function(values, followUpUrl){
      $('#confirmform').modal('show');
      return false;
    });
  });
</script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

Marketo Form object没有重置功能,但幸运的是,javascript在HTML表单元素上有这样的原生.reset()方法。此.reset()方法将恢复表单元素的默认值。

话虽如此,.onSuccess()回调中唯一要做的就是抓取HTML表单。调用Marketo Form对象的.getFormElem()方法,将为我们提供jQuery包装的表单元素,因此最后我们得到了form.getFormElem()[0]表单节点,我们可以在其上调用.reset()

以下是示例代码:

<script src="//app-lon06.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm"></form>
<script>
// The fourth argument of the `.loadForm()` can be used as an onReady callback.
MktoForms2.loadForm("//app-sjg.marketo.com", "819-OWT-537", 1404, function(form) {
    form.onSuccess(function(values, followUpUrl){
        // $('#confirmform').modal('show');
        console.log(form);
        // .getFormElem() returns the jQuery wrapped form element
        var formElement = form.getFormElem()[0];
        // .reset() is a native javascript method.
        formElement.reset();

        // If boolean `false` is returned then the visitor 
        // will NOT be forwarded to the follow up page!
        return false;
    });
});
</script>

注意:好处是,所有重要的隐藏字段(例如: formid munchkinId )将保持不变。