jQuery 重力表提交后的回调

jQuery callback after Gravity Form submit

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

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

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

我使用的代码如下:

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');
                }
            }); 
        }

    }

感谢所有帮助!

你可以调用 jQuery 必须是 运行 重力形式提交后像这样

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

这里是重力形式提供的关于 'gform_post_render' 的详细信息。 https://www.gravityhelp.com/documentation/article/gform_post_render/

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>