重力表单提交后的jQuery回调

Posted

技术标签:

【中文标题】重力表单提交后的jQuery回调【英文标题】:jQuery callback after Gravity Form submit 【发布时间】:2015-07-07 10:09:02 【问题描述】:

我尝试在 Gravity 表单中提交失败的表单后运行一些 jQuery 代码,也就是验证发现错误时。

我尝试使用 Ajax:complete 回调,但它根本没有触发。

我尝试运行的代码基本上将侦听器添加到选择下拉列表中,没有它,计算将不起作用,这会导致表单无法使用并且无法在不刷新页面的情况下提交。

我在下面使用的代码:

jQuery(document).ajaxComplete(function() 
    addServiceListeners();


function service_listeners() 

        var is_responsive = false;

        if(window_size < 1024 && $('body').hasClass('subNav-listener')) 
            is_responsive = true;
            $('.services-link').off('click');
            $('.services-link').on('click',function(e) 
                e.preventDefault();
                window.location = 'http://telviva.co.za/hosted-pbx';
            )
         else 
            $('.services-link').off('click');
            $('#sub-nav-container').removeClass('hidden');
            $('.services-link').on('click',function(e) 
                if(window_size <= 600) 
                    if(e.target.hash == "#pbx-main") 
                        window.location = 'http://telviva.co.za/hosted-pbx';
                     else 
                        return;
                    
                 else 
                    e.preventDefault();
                $('#sub-nav-container').toggleClass('open');
                
            ); 
        

    

感谢所有帮助!

【问题讨论】:

【参考方案1】:

你可以像这样调用重力表单提交后必须运行的jQuery

<script type="text/javascript">
jQuery(document).bind('gform_post_render', function()
   addServiceListeners();
);

这里是 Gravity 表单提供的“gform_post_render”的详细信息。 https://www.gravityhelp.com/documentation/article/gform_post_render/

【讨论】:

感谢您,经过一番深入搜索,我确实找到了它。将其标记为正确以供将来搜索。【参考方案2】:

user2745337 有正确答案!要详细说明解决方案,您应该获取代码并将其包装在一个函数中。在正常页面加载时调用该函数(或不调用,取决于您)。

当 gform_post_render 触发时,您可以调用您的函数 (addServiceListeners())

============

<script>
function addServiceListeners()
   alert("Do AJAX DOM problem stuff here :)";

addServiceListeners(); // call it on page load? Go for it.

jQuery(document).bind('gform_post_render', function()
   addServiceListeners();
);
</script>

【讨论】:

以上是关于重力表单提交后的jQuery回调的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 8表单提交Ajax表单后的回调

通过 jquery submit() 提交表单后的 Laravel 文件验证;

单击提交重力表单时显示加载动画

jquery.validate+jquery.form提交的三种方式

将提交时的重力表单重定向到刚刚创建的帖子

php 更改重力表单的默认提交按钮