在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 選擇題,怎么判斷選擇的答案是否是正確答案?

選擇題,怎么判斷選擇的答案是否是正確答案?

我獲取到一組數(shù)據(jù),是選擇類題型,我怎么判斷是否選對了呢

answera:"奧運會 "
answerb:"亞運會 "
answerc:"殘奧會 "
answerd:"大學(xué)生運動會 "
id:"1772"
question:"更快、更高、更強是()的格言。 "
rights:"A"

回答
編輯回答
你好胸

可以獲取ABCD,然后判斷ABCD啊,可以是更多選項,也可以是不定項選擇
其實這個問題有很多延伸
原始題可以是ABCD,然后隨機變化位BCDA(但顯示為ABCD等),然后獲取選擇進行判斷
為了簡化判斷,可以先把獲取的答案排序,然后和答案字符串對比。

2018年3月25日 20:16
編輯回答
孤客

我認(rèn)為最簡單的方法就是在標(biāo)簽里寫value ,然后在和爭取答案進行比較

2017年12月13日 16:13
編輯回答
護她命

截取答案所對應(yīng)的 key的值 截取最后一個元素 (a,b,c,d) 轉(zhuǎn)換為大寫 (A,B,C,D) 和 rights字段的value值比較 true就是答對了 false 就是答錯了

2017年8月5日 09:56
編輯回答
墨小羽

把數(shù)據(jù)格式改下吧~ 方便省事~

2017年4月13日 05:30
編輯回答
無標(biāo)題

根據(jù)答案來判斷呀

2017年11月30日 04:02
編輯回答
妖妖
{
    answera:"奧運會 ",
    answerb:"亞運會 ",
    answerc:"殘奧會 ",
    answerd:"大學(xué)生運動會 ",
    id:"1772",
    question:"更快、更高、更強是()的格言。 ",
    rights:"A"
}

上面的數(shù)據(jù)結(jié)構(gòu)設(shè)計其實是有問題的,比如要求打亂答案,操作就相對繁瑣,對于選項來說,應(yīng)該是并列結(jié)構(gòu)。所以數(shù)據(jù)結(jié)構(gòu)應(yīng)該是這樣的。

{
    answers:["奧運會 ", "亞運會 ", "殘奧會 ", "大學(xué)生運動會 "],
    id:"1772",
    question:"更快、更高、更強是()的格言。 ",
    rights:0 // 多選時提供多選答案,如([0,1,2])
}

如果后端愿意將接口修改成上面的結(jié)構(gòu)再好不過,如果不愿意,你可以在前端寫一個轉(zhuǎn)換一下:

function transformQuestion (qus) {
    var rightsOption = qus.rights
    var answers = [qus.answera, qus.answerb, qus.answerc, qus.answerd]
    // 下面的代碼用于支持多選,如 ["A", "C"], "A,C"這兩種數(shù)據(jù)格式
    if (typeof rightsOption === 'string') rightsOption = rightsOption.split(',')
    var trans = {
        multiple: rightsOption.length > 1, // 是否為多選題,答案數(shù)量 > 1 時為多選
        answers: answers,
        rights: rightsOption.map(function (opt) {
            var index = opt.toUpperCase().charCodeAt(0) - 65 // 獲取選項索引
            return answers[index]
        }).sort()
     }
     // 返回核對題目的函數(shù),這里的函數(shù)可以繼續(xù)按細節(jié)完善,這里只判斷是否完全正確
    return function checkUserInput (input) {
        if (typeof input === 'string') input = input.split(',')
        return trans.rights.join(',') === input.sort().join(',')
    }
}

// 測試函數(shù) 
var question = {
    answera:"乒乓球",
    answerb:"籃球",
    answerc:"橄欖球",
    answerd:"足球",
    id:"1772",
    question:"下列哪些球是圓的?",
    rights:"A,B,D" // 正確答案,等效于數(shù)組 ['A', 'B', 'D']
}

var check = transformQuestion(question)

// 回答題目
check('乒乓球') // false
check('橄欖球') // false
check('乒乓球,籃球,足球') // true
check(['乒乓球', '籃球', '足球']) // true
2017年4月29日 02:21
編輯回答
孤客
A:<input type="radio" name="q1" value="A" title=""><br>
B:<input type="radio" name="q1" value="B" title=""><br>
C:<input type="radio" name="q1" value="C" title=""><br>
D:<input type="radio" name="q1" value="D" title=""><br>
<script>
    window.onload = function (ev) {
        var result = [];
        var radio = document.querySelectorAll('input[type=radio]');
        for (var i = 0; i < radio.length; i++) {
            radio[i].onchange = function (ev2) {
                console.log(this.value);
                console.log(this.name);
                var request = {key: '', value: ''};
                request.key = this.name;
                request.value = this.value;
                console.log(request);
            }
        }
    };
</script>
無論單選多選,你可以弄成鍵值對的形式(類似于我這種,不過寫法上還是有點問題需要你自己處理),然后用你數(shù)據(jù)庫(?)的答案進行比對啊
2017年2月2日 04:19