私は複数の選択肢のクイズを作成しました。いくつかの回答にはラジオボックスがあり、他には複数の正解があるためチェックボックスがあります。私はこれまで、チェックされたすべての入力のIDを取得するためにスクリプトを使用し、評価のためにサーバーに送信するために配列に入れました。入力をチェックし、配列にそのhtmlのIDを追加しますが、私はそう私のデータ構造を変更する必要があります。私はすべてを通して非常に簡単にループするために管理してきましたラジオ/チェックボックス入力をループし、選択したIDの配列を配列にプッシュする方法
userAnswers = [ '1c', '2d', '3a', '3b', '3c', '3d', '4b', '5c', '5d', '6d' ]
:
配列は、このように見えましたサーバー上の回答を評価する方が簡単です。
answers = [
['c'], // Question 1 answers
['d'], // Question 2 answers
['a', 'b', 'c', 'd'], // 3
['b'], // 4
['c', 'd'], // 5
['d'], // 6
]
これを行うには、私はすべての見つかったループを作成しようとしている:私は次のようにデータ構造を変更しようとしている
は、彼らの[データquestion-に基づいて入力をチェックしますそのhtml IDを配列に追加し、その配列を上記のような配列に追加します。
これまでのところ、私が持っている最も近いは以下の通りです:
let numberOfQuestions = Assessments.findOne().numQuestions; //returns the number of questions in the quiz e.g '25'
let selectedAnswers = [];
for(let i = 1; i <= numberOfQuestions; i++) {
let answers = $("input[data-question-number=" + i + "]:checked").attr('id');
}
これはほとんど機能し、問題が.ATTR()が唯一の私の質問場所のいくつかでて、一致した最初の属性を返すことである以外4つのチェックボックスがあり、ユーザが3つのチェックボックスをチェックしている場合、最初のものだけが返されます。
誰かが私にこれをmofidyすることができれば、すべてのIDをチェックインしてくれます。ありがとう!
素晴らしいですが、これは完全に機能します。 ありがとう! – Sean