我在我的网站上使用了一个嵌入式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;
答案 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 )将保持不变。