我试图在重力表单中提交失败的表单后运行一些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');
}
});
}
}
所有的帮助感谢!
你可以像这样调用重力表单提交后必须运行的 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>