Я построил викторину с несколькими вариантами выбора. В некоторых ответах есть радио-боксы, у других есть флажки, так как есть несколько правильных ответов. Я ранее использовал скрипт, чтобы получить идентификатор всех: проверенных входов и поместить их в массив для отправки на сервер для оценки.Как подключить радио/вкладки checkbox и отодвинуть идентификатор выбранных в массивы
Массив выглядел следующим образом:
userAnswers = [ '1c', '2d', '3a', '3b', '3c', '3d', '4b', '5c', '5d', '6d' ]
мне удалось довольно легко перебрать все из: проверено входы и добавить их HTML идентификатор в массив, но мне нужно, чтобы изменить структуру данных, так легче оценить ответы на сервере.
Я пытаюсь изменить структуру данных на следующее:
answers = [
['c'], // Question 1 answers
['d'], // Question 2 answers
['a', 'b', 'c', 'd'], // 3
['b'], // 4
['c', 'd'], // 5
['d'], // 6
]
Чтобы сделать это, я пытаюсь создать цикл, который находит все: проверен входы на основе их [данные-Вопрос- number], а затем добавляет их 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 из всех: проверенные входы, которые были бы удивительными. Благодаря!
Awesome, это работает отлично. Спасибо! – Sean