我已經構建了一個選擇題測驗。一些答案有廣播框,其他答案有複選框,因爲有多個正確的答案。我以前使用過一個腳本來獲取所有選中的輸入的id,並將它們放入一個數組中以發送給服務器進行評估。如何通過收音機/複選框輸入循環,並將選定的人的ID推入陣列
數組是這樣的:
userAnswers = [ '1c', '2d', '3a', '3b', '3c', '3d', '4b', '5c', '5d', '6d' ]
我已經成功地通過所有的很容易循環:檢查輸入,並添加自己的HTML的id到一個數組,但我需要改變我的數據結構,評估服務器上的答案更容易。
我試圖將數據結構更改爲以下:
answers = [
['c'], // Question 1 answers
['d'], // Question 2 answers
['a', 'b', 'c', 'd'], // 3
['b'], // 4
['c', 'd'], // 5
['d'], // 6
]
要做到這一點,我試圖創建一個循環,查找所有:檢查輸入的基礎上他們的[數據question- 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這樣它會插入所有的檢查輸入,這將是非常棒的。謝謝!
真棒,這完美的作品。 謝謝! – Sean