これがまだあなたに関連している場合: 同じ機能が必要で、これが私がそれを解決した方法です: 最初に、ヘルパー変数を定義しEndLoop、それを呼び出して、0 に初期化します。次に、EndLoop の値を変更する関数を設定します。人々がボタンを押した後に1に、さらに、EndLoopがまだ0の場合にのみ表示し、EndLoopが1になるとすぐに質問を非表示にする表示ロジックをループ内の質問に追加します.
これは段階的な説明であり、javascript と html コードです。
太字のものはあなたがしなければならないことであり、箇条書きはそれを行うためのより詳細な指示です.
1. ループ アンド マージの前に、埋め込みデータ フィールドを定義し、それEndLoopを 0 として初期化します。
- 調査フロー パネルに移動
- 新しい要素を追加 > 埋め込みデータ フィールドを選択
- フィールドに「EndLoop」という名前を付けます
- 「今すぐ値を設定」リンクをクリックして、その値 t0 を数値 0 に設定します。
- 必ずマージ アンド ループ ブロックの前に移動してください
2. ループ内の各項目に対して、'EndLoop' = 0 の条件付きで表示する表示ロジックを設定します。
- ループ内の各質問のオプション メニューに移動します
- 「表示ロジックを追加」を選択
- 最初のドロップダウン メニューから [埋め込みデータ] を選択します。
- 新しいタイプ フィールドが開きます > 名前としてタイプ
EndLoop+ 「等しい」を選択 + 値として 0 を入力
3. ユーザーがオプトアウトできるページに、カスタマイズされたボタンを挿入します。このボタンは、setEndLoop() onclick というユーザー定義関数を実行します。
4. カスタム JavaScript を使用して関数 setEndLoop() を定義し、EndLoop の値を 1 に変更して、次のボタンのクリックをエミュレートします。
- ループ内の各質問のオプション メニューに移動します
- 「JavaScriptを追加」を選択
私が使用したコードは次のとおりです。
/* Get the EndLoop variable */
var EndLoop = "${e://Field/EndLoop}";
Qualtrics.SurveyEngine.addOnload(function(){
/* hide previous and next button */
$('NextButton') && $('NextButton').hide();
$('PreviousButton') && $('PreviousButton').hide();
/* Function: on click on user-defined button -> change the field EndLoop */
var that = this;
setEndLoop = function(){
Qualtrics.SurveyEngine.setEmbeddedData('EndLoop', 1);
that.clickNextButton();
};
});
ボタンにはデフォルトのスタイルがないため、テーマのボタンのように見えるようにボタンのスタイルを設定するカスタム css を定義します。ここで使用したボタンのクラス名は, cssid="css-class-mybutton"で使用します。.css-class-mybutton{ ... }
それが役立つことを願っています。