我有一个多页表格.
我想在此表单的最后一页上执行一些自定义JavaScript.从理论上讲,我所要做的就是检索当前页码并编写条件.
简单吧?显然不是.
我原来的解决方法是这样的:
if ($('gform_page').last().css('display') !== 'none') { // perform custom scripts now that the last // Gravity Form page is being shown }
但是$(”’).css(‘display’)在我在表单中尝试过的每个元素上返回undefined.每次用户点击“下一步”按钮时,都会触发自定义脚本.没有雪茄.
然后,在回顾the Gravity Forms documentation之后,我发现了两个有用的事件:gform_post_render和gform_page_loaded.
但是,文档未提供有关如何访问参数的说明.
jQuery(document).bind('gform_page_loaded',function(event,form_id,current_page){ console.log(current_page); // returns nothing when loaded in the footer // returns [Object,object] when placed in an HTML field in the form });
除了没有正确的代码之外,我还怀疑我没有正确的代码,因为我还在functions.PHP和header.PHP(as the documentation suggests)中尝试了以下内容:
<?PHP function enqueue_custom_script($form,$is_ajax){ if ($is_ajax) : echo '<script>console.log(current_page);</script>'; endif; } add_action("gform_enqueue_scripts","enqueue_custom_script",10,2); ?>
题:
我知道了.
原文链接:https://www.f2er.com/php/130380.html显然,功能rgpost
在访问当前页码时至关重要.经过我自己的一些混乱之后,我能够在functions.PHP和header.PHP中的wp_head()函数之前获得以下代码.
function run_script_on_last_page($form) { if (!is_admin()) { $current_page = rgpost('gform_source_page_number_' . $form['id']) ? rgpost('gform_source_page_number_' . $form['id']) : 1; if ($current_page == 10) { wp_enqueue_script('custom_script',get_template_directory_uri() . '/js/custom_script.js',array('jquery'),null,true); } } } add_action('gform_enqueue_scripts_63','run_script_on_last_page');
如果您要复制/粘贴上述代码,请务必:
>将10替换为您要检查的页面
>确保wp_enqueue_script中的参数正确
>用表格ID替换63
我认为有用的一些资源:
> g001_validation过滤器文档的this section
> gform_enqueue_scripts
的文档.