Mar*_*lli 5 ajax wordpress gravity gravity-forms-plugin gravityforms
我现在有这个设置:
一个WordPress网站,我使用类似于http://barbajs.org/的东西.
所以每个页面内容都通过ajax加载到<main></main>标签.
在其中一个页面(联系页面)中,我有一个重力形式,并使用分页符.表单被制作成步骤,每个步骤都加载到页面内.如果我加载的第一页是该页面(联系页面),一切正常,但是一旦我转到另一页并返回,或者如果我从上一页转到联系页面,表单将不再起作用.
关于如何解决它的任何想法.这是代码部分:
Wordpress:WYSIWYG与短代码
[gravityform id="2" title="false" description="false" ajax="true"]
Run Code Online (Sandbox Code Playgroud)
在加载时,我有这个:(
jQuery('#gform_wrapper_2').show()这是唯一可行的),所以我没有得到黑页.
如果我点击下一步(它没有加载下一步),我试过这个:这是我在文档或下一个按钮下找到的 onclick = "..."
jQuery(document).trigger('gform_post_conditional_logic', [2, null, true])
jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} )
jQuery(document).trigger('gform_post_render', [2, 1])
jQuery("#gform_target_page_number_2").val("2");
jQuery("#gform_2").trigger("submit",[true]);
Run Code Online (Sandbox Code Playgroud)
我需要一些gform.init()理想的东西:D或类似的东西让我再次绑定表单.
非常感谢!
在深入研究重力形式插件后,我能够解决这个问题。
所以这就是我所做的..希望它能帮助将来的人(不确定是否是最好的解决方案,但它有效):
所以“主要”的想法是 barba 或任何你正在使用的东西(在我的例子中是 biggie)正在为一个新页面进行 ajax 调用,你将有一个类似 read / newPageReady 函数的东西,在这里你可以进行一个新的 ajax 调用获取您的表格。
JS:(鉴于gform使用jquery,你可以使用它)
ready(done) {
ajax.get(APP.AJAX_URL + '?action=get_form', {
success: (object) => {
//console.log(object.data)
jQuery('.main-content-wrapper').append(object.data)
jQuery('body #gform_wrapper_2').show()
}
})
}
addEvents() {
// this will check everytime a form is loaded
jQuery(document).bind('gform_page_loaded', this.gform)
}
gform(event, form_id, current_page) {
//Here the form is loaded but not showed.. you can do something like this
TweenMax.fromTo('.gform_wrapper', 1.2, {autoAlpha: 0}, {autoAlpha:1})
}
Run Code Online (Sandbox Code Playgroud)
函数.php
add_action( 'wp_ajax_nopriv_get_form', 'get_form' );
add_action( 'wp_ajax_get_form', 'get_form' );
function get_form() {
gravity_form( id_of_your_form,false, false, false, false, true );
die();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2863 次 |
| 最近记录: |