2017-09-28 3 views
2

JavaScriptで動的スコアリングマトリックスを実装する方法が必要です。JavaScript動的スコアリングマトリックス

Sample Fiddle

あなたが他の質問を非表示/表示するために行ってきましたどの学校についての最初の二つの質問:私はここでフィドルを作成しました。

だから、最初の二つの質問への回答に基づいて、4つの可能な場合があります。

回答は常に 回答に常に表示されているプラ​​ス高校の質問があるの質問に答えて 質問に表示されるだけの質問常に表示プラス小学校の質問には、常に&高校の質問

(QUを含まない、私は目に見える質問の配列を構築する必要が回答する必要があります質問を超える動的ループへの表示に加えて小学校れ質問に回答し あなたが行った学校についての評価)。ここで

$(document).ready(function() { 

    // INITALISE OPTIONAL QUESTION GROUPS HIDDEN 
    $('.form-group.highschoolquestions').hide(); 
    $('.form-group.elementaryschoolquestions').hide(); 


    // SHOW/HIDE HIGH SCHOOL QUESTIONS 
    $(document).on('change', '.selectpicker.highschool', function() { 
console.log('high school changed'); 
if ($('.selectpicker.highschool').val() == 1) { 
    $('.form-group.highschoolquestions').show(); 
} 
if ($('.selectpicker.highschool').val() == 0) { 
    $('.form-group.highschoolquestions').hide(); 
} 
}); 

    // SHOW/HIDE ELEMENTARY SCHOOL QUESTIONS 
    $(document).on('change', '.selectpicker.elementaryschool', function() { 
    if ($('.selectpicker.elementaryschool').val() == 1) { 
     $('.form-group.elementaryschoolquestions').show(); 
    } 
if ($('.selectpicker.elementaryschool').val() == 0) { 
    $('.form-group.elementaryschoolquestions').hide(); 
} 

var questionsVisible = []; 
$(document).on('change', '.selectpicker.schoolgroup', function() { 
    // I WANT TO SCORE ONLY THE VISIBLE QUESTIONS - HOW TO CONSTRUCT AN ARRAY TO DO THIS? 
    $('.selectpicker.highschoolquestion:visible').each(function() { 
    questionsVisible.push(this); 
    console.log('pause'); 
    }); 
    }); 
}); 
}); 
+0

をデータとして使用してください... – Teemu

+0

これはどのように役立ちますか?質問が表示されているかどうかに基づいてスコアリングする質問の配列を作成する必要がありますか? –

+0

コメントはあなたの質問と同じくらい明確です。あなたのコードに何が間違っているか決して言わなかった、「_I am stuck_」はあまり説明的な問題の説明ではありません。また、配列を取得しているように見えますが、作成した直後にそれを放棄するだけです。 – Teemu

答えて

2

ソリューション取り組んでいる:どのことができます値として文字列を使用してJSで、また、jQueryの中の機能が、あります

Fiddle

$(document).ready(function() { 
 

 
    // INITALISE OPTIONAL QUESTION GROUPS HIDDEN 
 
    $('.form-group.highschoolquestions').hide(); 
 
    $('.form-group.elementaryschoolquestions').hide(); 
 

 

 
    // SHOW/HIDE HIGH SCHOOL QUESTIONS 
 
    $(document).on('change', '.selectpicker.highschool', function() { 
 
    console.log('high school changed'); 
 
    if ($('.selectpicker.highschool').val() == 1) { 
 
     $('.form-group.highschoolquestions').show(); 
 
    } 
 
    if ($('.selectpicker.highschool').val() == 0) { 
 
     $('.form-group.highschoolquestions').hide(); 
 
    } 
 
    }); 
 

 
    // SHOW/HIDE ELEMENTARY SCHOOL QUESTIONS 
 
    $(document).on('change', '.selectpicker.elementaryschool', function() { 
 
    if ($('.selectpicker.elementaryschool').val() == 1) { 
 
     $('.form-group.elementaryschoolquestions').show(); 
 
    } 
 
    if ($('.selectpicker.elementaryschool').val() == 0) { 
 
     $('.form-group.elementaryschoolquestions').hide(); 
 
    } 
 

 
    }); 
 
     $(document).on('change', 'select', function() { 
 
     // I WANT TO SCORE ONLY THE VISIBLE QUESTIONS - HOW TO CONSTRUCT AN ARRAY TO DO THIS? 
 
     var total = 0; 
 
     $('.score-select select:visible').each(function() { 
 
     var val = parseInt($(this).val()) 
 
     total += val > 0 ? val :0; 
 
     console.log('pause'); 
 
     }); 
 
     $('#todayscore').val(total); 
 
    }); 
 
});

+0

ニース。すべての目に見える質問に答えるまで、スコアを「未完了」とマークする方法はありますか? –

+0

あなたはこの基準を決める必要があります。「いいえ」も答えです。 –

+0

いいえとはいの両方が有効な回答です。ありがとう –