# FormBridgeのステップフォーム有効時に入力内容によって特定のステップを飛ばしたい

**URL:** <https://community.cybozu.dev/t/topic/10485>\
**Category:** kintone 開発相談\
**Created:** [2025 年 6 月 26 日午前 4:32 UTC](https://community.cybozu.dev/t/topic/10485 "2025-06-26T04:32:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mtnk](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mtnk](https://community.cybozu.dev/u/mtnk)\
**Post date:** [2025 年 6 月 26 日午前 4:32 UTC](https://community.cybozu.dev/t/topic/10485/1 "2025-06-26T04:32:07Z")

</div>

### 何を実現したいのかを書きましょう

FormBridge（フォームブリッジ）にてアンケートフォームを作成しており、1問1答の形式を想定しております。（ステップフォームを有効にし、1つのステップ内で1つの質問を表示する）  
アンケートの最初にドロップダウン形式でアンケートの種類を選択するのですが、その選択内容によっては回答不要の質問もあるため、ステップを飛ばすような処理を行いたいです。  
例：  
ステップ1でアンケート種別のAを選択⇒次へボタンでステップ2に遷移  
ステップ1でアンケート種別のBを選択⇒次へボタンでステップ4に遷移

条件分岐によってドロップダウンの内容による質問の表示・非表示は設定しているのですが、ステップが飛ばせないため、何も表示されないステップを次へボタンで飛ばしてもらう作業を回答者にしてもらうことになってしまいます。

上記の解決方法をご教示いただけますと幸いです。

### 発生した問題やエラーメッセージを具体的に書きましょう

下記のサイトを参考にJavaScriptにてステップ遷移前のイベントを拾い、次のステップ番号を変更出来ないか見よう見まねでコードを作ってみましたが特に動作に変更がありません。おそらくこのコンテキストオブジェクトは取得のみで変更できないのだと思います。  
[新バージョンJavaScriptカスタマイズ](https://formbridge.kintoneapp.com/help/customize/v2)  
過去にも同様の質問があったようですが、DOMの取得やイベントの実行がよく分からず実施できていない状態です。  
[【フォームブリッジ】ステップフォーム：条件に応じてステップ数を変える](https://community.cybozu.dev/t/topic/5364)

### 実行したコードをコピー＆ペーストしましょう

ひとまずステップ1からステップ4への遷移が出来ないか試したコードです。

```javascript
(() => {
  'use strict';
  
formBridge.events.on('form.step.moving', function (context) {
  if (context.currentStep === 1 && context.nextStep === 2) {
    context.nextStep = 4;
  }
});
})();

```

---

<div class="post-metadata">

**Author:** ![aaa](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/aaa/32/277_2.png) [@aaa](https://community.cybozu.dev/u/aaa)\
**Post date:** [2025 年 8 月 8 日午前 8:34 UTC](https://community.cybozu.dev/t/topic/10485/2 "2025-08-08T08:34:59Z")

</div>

きちんと試していないのですが、

イベントを変更しました。`form.show` にしました。

適当に2ページ目で止まるようにしました。

あとは回答内容と現在のステップ番号を取得しながら修正してみてください。

（このコードでは戻るボタンをクリックすると1ページに戻ってすぐ、2ページ目に移動しています。）

```javascript
;(() => {
  'use strict'

  formBridge.events.on('form.show', (context) => {
    console.log(context)
    if (context.currentStep === 2) {
      return
    }

    // 「次へ」ボタンをテキストで特定
    const btn = [...document.querySelectorAll('button.text-form-base')].find((b) =>
      b.textContent.trim().includes('次へ'),
    )

    if (!btn) {
      console.warn('「次へ」ボタンが見つかりません。')
    } else {
      btn.focus()
      btn.click()
    }
  })
})()

```

ところで、今回のステップフォームという手もありますが「条件分岐」という手もあります。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2025 年 8 月 12 日午前 2:27 UTC](https://community.cybozu.dev/t/topic/10485/3 "2025-08-12T02:27:18Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
