複数ページのフォームがあります。
このフォームの最後のページでカスタム JavaScript を実行したいと思います。理論的には、現在のページ番号を取得して条件を記述するだけです。
シンプルですね。どうやらそうではありません。
私の元の回避策は次のようなものでした:
if ($('gform_page').last().css('display') !== 'none') {
// perform custom scripts now that the last
// Gravity Form page is being shown
}
しかし、フォーム内でこれを試したすべての$('...').css('display')
要素を返します。ユーザーが [次へ] ボタンを押すたびに、カスタム スクリプトが実行されていました。葉巻はありません。undefined
次に、Gravity Forms のドキュメントを確認したところ、2 つの有用なイベントが見つかりました: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 で次のことを無益に試したので、正しい場所にコードがないのではないかと疑っています (ドキュメントが示唆するように):
<?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);
?>
質問:
現在のページ番号を取得するにはどのようなコードが必要ですか? さらに重要なのは、そのコードをどこに配置すればよいでしょうか?