0

Qualtrics で、1 つの質問では十分に簡単な特定の関数で問題が発生していますが、Matrix Table または Side-by-Side を使用すると不可能になります。

1) マトリックス テーブルの個々のフィールドのコンテンツ検証 - マトリックス テーブルの通貨では、複数のフィールドの検証のみを確認して、1 つのエラーを生成することができます。

2) マトリックス テーブルのその行の前のフィールドのエントリに基づく、フィールドの必須応答

3) マトリックス テーブルのテキスト エントリの値を再コード化する - マトリックス テーブルでこれを行う方法はないようです。繰り返しますが、単一の質問で行うのは非常に簡単です。

基本的に、ユーザーが必要に応じてマトリックス テーブルの 1 行だけを完了できるようにしたいのですが、完了した行については、特定のフィールドを検証し、特定のフィールドに対する応答を要求し、場合によっては再コーディングする必要があります。それらのテキスト エントリ。

代わりにJavascriptでこれを行う簡単な方法はありますか?

ありがとう...

4

1 に答える 1

0

私の推測では、JavaScript がそれを処理します。控えめに言っても、Qualtrics の検証機能は限られているため、いくつかのスクリプトを作成する必要がありました。

Qualtrics 検証オプションの設定方法によっては、おそらく Qualtrics の JavaScript の関数を使用する必要があります。以下は、使用する基本的な構造です。Qualtrics の質問 ID についてよくわからないので、プレースホルダーを使用しました。


更新:横並びの質問タイプを使用することをお勧めします。質問/アンケートへのリンクはこちら

まず始めに、最初の生徒用のコードを次に示します。生徒 2 ~ 5 に同じパターンをコピーする必要があります。バリデーション スタイル (インライン メッセージ、ポップアップ) で非常に多くの方法を使用できるため、私はそこまで行っていません。Qualtrics の 2 つのメール列のコンテンツ検証で選択できるメール検証。電話番号の検証も選択できます。ここでの検証は、ユーザーがすべての基準を満たすまで次のページに移動できないようにするだけです。質問の本文で検証基準を説明できます。

私が使用した質問 ID が最初にリストされ、スクリーン ショット内のアイテムの配置に正確に対応します。ただし、Y/N 質問は横並びの質問とは異なり、ID QR~QID9#5~1 を持ちます。はいの場合は ~1、いいえの場合は QR~QID9#5~1~2。Firebug に関するあなたのスキルはわかりませんが、特定の質問に関連する ID を見つけて、以下の ID をそれらに置き換える必要があります。

また、埋め込みデータ変数を使用して回答をフィードすることをお勧めします。これにより、ダウンロードにきれいで読みやすいデータが含まれます。私の記憶では、Qualtrics マトリックスの構造と並列データはあまり使い物になりません。

うまくいけば、これはあなたにとって理にかなっています。そうでない場合は、尋ねてください。個人的な経験から、Qualtrics の JavaScript サポートを見つけるのがいかにイライラするかを知っています。

Qualtrics.SurveyEngine.addOnload(function () {
/*Place Your Javascript Below This Line*/

//QR~QID9#1~1~1~TEXT - QR~QID9#2~1~1~TEXT - QR~QID9#3~1~1~TEXT - QR~QID9#4~1~1~TEXT - QR~QID9#5~1~1/QR~QID9#5~1~2 - QR~QID9#6~1~1~TEXT
//QR~QID9#1~2~1~TEXT - QR~QID9#2~2~1~TEXT - QR~QID9#3~2~1~TEXT - QR~QID9#4~2~1~TEXT - QR~QID9#5~2~1/QR~QID9#5~2~2 - QR~QID9#6~2~1~TEXT
//QR~QID9#1~3~1~TEXT - QR~QID9#2~3~1~TEXT - QR~QID9#3~3~1~TEXT - QR~QID9#4~3~1~TEXT - QR~QID9#5~3~1/QR~QID9#5~3~2 - QR~QID9#6~3~1~TEXT
//QR~QID9#1~4~1~TEXT - QR~QID9#2~4~1~TEXT - QR~QID9#3~4~1~TEXT - QR~QID9#4~4~1~TEXT - QR~QID9#5~4~1/QR~QID9#5~4~2 - QR~QID9#6~4~1~TEXT
//QR~QID9#1~5~1~TEXT - QR~QID9#2~5~1~TEXT - QR~QID9#3~5~1~TEXT - QR~QID9#4~5~1~TEXT - QR~QID9#5~5~1/QR~QID9#5~5~2 - QR~QID9#6~5~1~TEXT

var notvalidphbook1 = 0, notvalidphbook2 = 0, notvalidphbook3 = 0, notvalidphbook4 = 0, notvalidphbook5 = 0;
var phsbooks; //gets sum of notvalidphbook items

var bookrecode1, bookrecode2, bookrecode3, bookrecode4, bookrecode5;

var notvalidemail1 = 0, notvalidemail2 = 0, notvalidemail3 = 0, notvalidemail4 = 0, notvalidemail5 = 0;
var emails; //gets sum of notvalidemail items

var validates; //validation variable that decides if user proceeds or not

Qualtrics.SurveyPage.Question.prototype.validate = function (element) {

    //Student name entered
    var student1y = $('QR~QID9#1~1~1~TEXT').getValue();
    var student2y = $('QR~QID9#1~2~1~TEXT').getValue();
    var student3y = $('QR~QID9#1~3~1~TEXT').getValue();
    var student4y = $('QR~QID9#1~4~1~TEXT').getValue();
    var student5y = $('QR~QID9#1~5~1~TEXT').getValue();

    //Student phone number
    var student1phone = $('QR~QID9#2~1~1~TEXT').getValue();
    var student2phone = $('QR~QID9#2~2~1~TEXT').getValue();
    var student3phone = $('QR~QID9#2~3~1~TEXT').getValue();
    var student4phone = $('QR~QID9#2~4~1~TEXT').getValue();
    var student5phone = $('QR~QID9#2~5~1~TEXT').getValue();

    //Emails match
    var student1emailA = $('QR~QID9#3~1~1~TEXT').getValue();
    var student1emailB = $('QR~QID9#4~1~1~TEXT').getValue();
    var student2emailA = $('QR~QID9#3~2~1~TEXT').getValue();
    var student2emailB = $('QR~QID9#4~2~1~TEXT').getValue();
    var student3emailA = $('QR~QID9#3~3~1~TEXT').getValue();
    var student3emailB = $('QR~QID9#4~3~1~TEXT').getValue();
    var student4emailA = $('QR~QID9#3~4~1~TEXT').getValue();
    var student4emailB = $('QR~QID9#4~4~1~TEXT').getValue();
    var student5emailA = $('QR~QID9#3~5~1~TEXT').getValue();
    var student6emailB = $('QR~QID9#4~5~1~TEXT').getValue();

    //Student book needs
    var student1booky = $('QR~QID9#5~1~1').getValue();
    var student1bookn = $('QR~QID9#5~1~2').getValue();
    var student2booky = $('QR~QID9#5~2~1').getValue();
    var student2bookn = $('QR~QID9#5~2~2').getValue();
    var student3booky = $('QR~QID9#5~3~1').getValue();
    var student3bookn = $('QR~QID9#5~3~2').getValue();
    var student4booky = $('QR~QID9#5~4~1').getValue();
    var student4bookn = $('QR~QID9#5~4~2').getValue();
    var student5booky = $('QR~QID9#5~5~1').getValue();
    var student6bookn = $('QR~QID9#5~5~2').getValue();

    //Student book name
    var student1bookname = $('QR~QID9#6~1~1~TEXT').getValue();
    var student2bookname = $('QR~QID9#6~2~1~TEXT').getValue();
    var student3bookname = $('QR~QID9#6~3~1~TEXT').getValue();
    var student4bookname = $('QR~QID9#6~4~1~TEXT').getValue();
    var student5bookname = $('QR~QID9#6~5~1~TEXT').getValue();

    if (student1y == '') {
        //alert("no name provided, no other info needed");
        //"no name provided, no other info needed"

    } else if (student1y != '' && (student1phone == '' || (student1emailA == '' || student1emailB == '') || (student1booky == null && student1bookn == null))) {
        //alert("you need to provide a phone number and enter the student's book needs");
        notvalidphbook1 = 1;    
    } 

           else if (student1y != '' && (student1phone != '' && (student1emailA != '' && student1emailB != '') && (student1booky == null && student1bookn == null))) {

  notvalidphbook1 = 0;
             else {
        //alert("thank you for providing a phone number and specifying book needs");
        if (student1booky == 'QR~QID9#5~1~1') {
            bookrecode1 = 'Y';
        } else {
            bookrecode1 = 'N';
        }
    }

    if (student1emailA == '' && student1emailB == '') {
        //alert("no email provided, no match needed");
        //"no email provided, no match needed"

    } else if (student1emailA != '' && student1emailA == student1emailB) {
        //alert("the emails match");
        //"the emails match"
                    notvalidemail1 = 0;

    } else {
        //alert("the emails don't match");
        //"the emails don't match"
        notvalidemail1 = 1;
    }

    Qualtrics.SurveyEngine.setEmbeddedData('Student1Name', student1y);
    Qualtrics.SurveyEngine.setEmbeddedData('Student1Phone', student1phone);
    Qualtrics.SurveyEngine.setEmbeddedData('Student1Email', student1emailA);
    Qualtrics.SurveyEngine.setEmbeddedData('Student1Txt', bookrecode1);
    Qualtrics.SurveyEngine.setEmbeddedData('Student1TxtName', student1bookname);

    phsbooks = notvalidphbook1 + notvalidphbook2 + notvalidphbook3 + notvalidphbook4 + notvalidphbook5;
    emails = notvalidemail1 + notvalidemail2 + notvalidemail3 + notvalidemail4 + notvalidemail5;

    validates = phsbooks + emails;

    if (validates == 0) { //validates only if the sum is equal to zero
        return true; //this let's the user continue
    } else {
        return false; //this prevents the user from proceeding to the next page
    }

}
});
于 2013-02-27T23:23:31.240 に答える