2

私は現在、回答者がアナグラムの長いリストを解決し、いくつかの人口統計学的質問に答える必要がある Qualtrics 調査に取り組んでいます。

アナグラムの部分を簡単にするために、ループとマージ ブロックを使用しました。最初のフィールドは解決するアナグラムで、2 番目のフィールドはアナグラムのソリューションです。各アナグラムの解。

そのままで、調査は完全に機能しています。ただし、回答者が回答フィールドに「EXIT」と入力してループを早期に終了し、次の質問ブロック (人口統計に関する質問) にリダイレクトできるようにしたいと考えています。

これは通常、「スキップ」ロジックを使用して実現されます。ただし、ブロックの最後までスキップしてもうまくいきません (ループが再開します)。調査の最後にリダイレクトすることはできましたが、人口統計の質問ブロックにはリダイレクトできませんでした。

JavaScriptを使用して人口統計ブロックにジャンプするか、ループを終了してブロックを時期尚早にマージする方法はありますか? トリックを実行するクアルトリクスのオプションがありませんか?

4

3 に答える 3

6

これがまだあなたに関連している場合: 同じ機能が必要で、これが私がそれを解決した方法です: 最初に、ヘルパー変数を定義しEndLoop、それを呼び出して、0 に初期化します。次に、EndLoop の値を変更する関数を設定します。人々がボタンを押した後に1に、さらに、EndLoopがまだ0の場合にのみ表示し、EndLoopが1になるとすぐに質問を非表示にする表示ロジックをループ内の質問に追加します.

これは段階的な説明であり、javascript と html コードです。

太字のものはあなたがしなければならないことであり、箇条書きはそれを行うためのより詳細な指示です.

1. ループ アンド マージの前に、埋め込みデータ フィールドを定義し、それEndLoopを 0 として初期化します。

  • 調査フロー パネルに移動
  • 新しい要素を追加 > 埋め込みデータ フィールドを選択
  • フィールドに「EndLoop」という名前を付けます
  • 「今すぐ値を設定」リンクをクリックして、その値 t0 を数値 0 に設定します。
  • 必ずマージ アンド ループ ブロックの前に移動してください

2. ループ内の各項目に対して、'EndLoop' = 0 の条件付きで表示する表示ロジックを設定します。

  • ループ内の各質問のオプション メニューに移動します
  • 「表示ロジックを追加」を選択
  • 最初のドロップダウン メニューから [埋め込みデータ] を選択します。
  • 新しいタイプ フィールドが開きます > 名前としてタイプEndLoop+ 「等しい」を選択 + 値として 0 を入力

3. ユーザーがオプトアウトできるページに、カスタマイズされたボタンを挿入します。このボタンは、setEndLoop() onclick というユーザー定義関数を実行します。

  • ボタンが表示される質問をクリックします
  • 質問テキストの右上にある [html ビュー] を選択します。
  • 私が使用したコードは次のとおりです。

    <input id="css-class-mybutton" onclick="setEndLoop()" value=" done " type="button">
    
  • ボタンのテキストを変更する場合は、「完了」を変更しますvalue = " done "

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{ ... }

それが役立つことを願っています。

于 2014-11-30T18:50:51.800 に答える
3

これが少し遅れていることはわかっていますが、同様の問題があり、別の解決策を投稿したいと考えていました. ループとマージ機能を使用しましたが、参加者がボタンをクリックしてループを終了するのではなく、多肢選択式の質問を使用してループを終了したかったのです。この質問は、「もっと質問しますか?」というもので、イエスとノーで答えられました。参加者が「はい」を選択した場合、ループを続行し、「いいえ」を選択した場合、ループを終了して次の質問ブロックに進みます。

最初の 2 つの手順は上記と同じです。

1.EndLoop という名前の埋め込みデータ フィールドを設定し、値を 1 に設定します。 - 調査フロー パネルで要素の追加を選択します。次に、EndLoop という名前を入力します。- 次に、ここで値の設定を選択し、値を 1 に設定します。 - これが調査フローのループおよびマージ ブロックの前にあることを確認してください。

  1. ループおよびマージ ブロック内の各質問に対して、表示ロジックを使用して、埋め込まれたデータ要素 EndLoop が 1 の場合にのみ表示されるようにします。

  2. 次に、「もっと質問しますか?」という質問です。add javascript 領域に次のコードを追加します。

    • JavaScript 領域は、画面左側の質問番号の下にある詳細オプション ボタンをクリックすると表示されます。「JavaScript を追加...」を選択します。
      • すでにいくつかのコードが存在します...次のようになります。

    Qualtrics.SurveyEngine.addOnload(関数() {

    / Javascript をこの行の下に配置します/

    });

    • 基本的に、イベント トラッキングを使用して、埋め込みデータ フィールド EndLoop を、回答の選択肢が選択されたときに、回答の選択肢に関連付けられた数値に更新しました。この場合、回答「はい」は最初の選択肢であるため値 1 であり、「いいえ」は 2 番目の選択肢であるため値 2 です。「いいえ」を選択すると、埋め込みデータ フィールド EndLoop の値が 2 に設定されました。これは、EndLoop フィールドが 1 の場合にのみ表示されるようにする表示ロジックがあるため、質問が表示されないことを意味します。

私のコード全体は次のようになります。

Qualtrics.SurveyEngine.addOnload(function ()
{
    this.questionclick = function(event,element)
    {
        console.log(event, element);
        if (element.type == 'radio')
        {
            var choiceNum = element.id;
            if (choiceNum == 2)
            {
           Qualtrics.SurveyEngine.setEmbeddedData("EndLoop", choiceNum);
            }
        }
    }
});
于 2015-07-16T18:27:05.963 に答える