JavaScript多项选择题测验-选择错误

时间:2020-03-18 12:57:26

标签: javascript html

JavaScript多项选择题测验

我有以下问题:如果我从一个问题的1至4中选择一个答案,则在其他问题中也会选择我在该问题中选择的相同答案编号。因此,如果我按照示例选择(参见图片)答案A中的一个答案“ 1:Sie haben nicht rechtzeitig geliefert”,那么还会选择一个问题中的另一个答案,依此类推...

macro scores

Image: Show the correct Selection from the first Multiple Choice Question

一个问题示例:

                    {
                    "id": 8,
                    "type": "multiple",
                    "situation": "Situation: Als Auszubildende/Auszubildender des Beratungsunternehmens BroCess GmbH sind Sie schon seit einigen Monaten im Bereich der rechnergestützten Prozessoptimierung bei Kunden eingesetzt.",
                    "description": 'Sie bekommen ein Gespräch eines Außendienstmitarbeiters mit einem Kunden mit. Nach dem Vier-Ohren-Modell, "hört" der Außendienstmitarbeiter die folgenden 1 bis 4 gekennzeichneten Informationen.',
                    "question": 'Ordnen Sie diese Informationen den daneben stehenden Ebenen ("Ohren") zu.',
                    "exercise": "Tragen Sie die Ziffer vor der jeweils zutreffenden Information in das Kästchen ein.",
                    "note": "",
                    "examples": {
                        "A": "Selbstoffenbarung",
                        "B": "Sachverhalt",
                        "C": "Beziehung",
                        "D": "Appell"
                    },
                    "answers": {
                        "1": "Sie haben nicht rechtzeitig geliefert.",
                        "2": "Ich beobachte Ihre Leistung genau.",
                        "3": "Ich bin von Ihnen enttäuscht.",
                        "4": "Sie sollen pünktlich liefern!"
                    },
                    "rights": {
                        "A": 2,
                        "B": 1,
                        "C": 3,
                        "D": 4
                    },
                },

    // SELECT MULTIPLE ANSWERS
    for(var letter = 0; letter < Object.keys(currentQuestion.examples).length;letter++) 
    {
        selectMultipleQuestionAnswer(Object.keys(currentQuestion.examples)[letter]);
    }


function selectMultipleQuestionAnswer(letter) {
    // If the first answer button is clicked
    $("#multiple-answer-" + letter.toLowerCase() + "-1-btn").click(function() {
        console.log("Zur Frage " + letter + " wurde eine Anwort angeklickt");
        console.log("#multiple-answer-" + letter.toLowerCase() + "-1-btn");
        selectAnswer("#multiple-answer-" + letter.toLowerCase() + "-1-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-2-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-3-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-4-btn");
    });
    // If the second answer button is clicked
    $("#multiple-answer-" + letter.toLowerCase() + "-2-btn").click(function() {
        console.log("Zur Frage " + letter + " wurde eine Anwort angeklickt");
        console.log("#multiple-answer-" + letter.toLowerCase() + "-2-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-1-btn");
        selectAnswer("#multiple-answer-" + letter.toLowerCase() + "-2-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-3-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-4-btn");
    });
    // If the third answer button is clicked
    $("#multiple-answer-" + letter.toLowerCase() + "-3-btn").click(function() {
        console.log("Zur Frage " + letter + " wurde eine Anwort angeklickt");
        console.log("#multiple-answer-" + letter.toLowerCase() + "-3-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-1-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-2-btn");
        selectAnswer("#multiple-answer-" + letter.toLowerCase() + "-3-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-4-btn");
    });
    // If the fourth answer button is clicked
    $("#multiple-answer-" + letter.toLowerCase() + "-4-btn").click(function() {
        console.log("Zur Frage " + letter + " wurde eine Anwort angeklickt");
        console.log("#multiple-answer-" + letter.toLowerCase() + "-4-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-1-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-2-btn");
        deselectAnswer("#multiple-answer-" + letter.toLowerCase() + "-3-btn");
        selectAnswer("#multiple-answer-" + letter.toLowerCase() + "-4-btn");
    });
}
<div id="multiple-question" class="question jumbotron"  style="display: none;"> 
                <div class="multiple-questions">
                    <h2>Frage
                        <span class="multiple-question-number">0</span>
                    </h2>
                    <div class="situation p-3 mb-2 bg-info text-white">
                        <p class="multiple-question-situation">
                            Situation
                        </p>
                    </div>
                    <p class="multiple-question-description">
                        Beschreibung
                    </p>
                    <p class="multiple-question-text">
                        Frage 
                    </p>
                    <p class="multiple-question-exercise">
                        Aufgabe
                    </p>
                    <p class="multiple-question-note">
                        Hinweis
                    </p>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="p-3 mb-2 bg-dark text-white">
                                A:<span id="example-a">Antwort</span>
                            </p>
                        </div>  
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-a-1-btn" class="answer answer-a answer-1-btn btn btn-secondary btn-lg btn-block" >1: 
                                    <span class="multiple-answer-1">Antwort</span>
                                </button>
                            </p>
                        </div>  
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-a-3-btn" class="answer answer-a answer-3-btn btn btn-secondary btn-lg btn-block" >3: 
                                    <span class="multiple-answer-3">Antwort</span>
                                </button>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-a-2-btn" class="answer answer-a answer-2-btn btn btn-secondary btn-lg btn-block" >2: 
                                    <span class="multiple-answer-2">Antwort</span>
                                </button>
                            </p>
                        </div>
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-a-4-btn" class="answer answer-a answer-4-btn btn btn-secondary btn-lg btn-block" >4: 
                                    <span class="multiple-answer-4">Antwort</span>
                                </button>
                            </p>
                        </div>
                    </div>
                    ...
                                        <div class="row">
                        <div class="col-md-12">
                            <p class="p-3 mb-2 bg-dark text-white">
                                D:<span id="example-d">Antwort</span>
                            </p>
                        </div>  
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-d-1-btn" class="answer answer-d answer-1-btn btn btn-secondary btn-lg btn-block" >1: 
                                    <span class="multiple-answer-1">Antwort</span>
                                </button>
                            </p>
                        </div>  
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-d-3-btn" class="answer answer-c answer-3-btn btn btn-secondary btn-lg btn-block" >3: 
                                    <span class="multiple-answer-3">Antwort</span>
                                </button>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-d-2-btn" class="answer answer-d answer-2-btn btn btn-secondary btn-lg btn-block" >2: 
                                    <span class="multiple-answer-2">Antwort</span>
                                </button>
                            </p>
                        </div>
                        <div class="col-md-6">
                            <p>
                                <button id="multiple-answer-d-4-btn" class="answer answer-d answer-4-btn btn btn-secondary btn-lg btn-block" >4: 
                                    <span class="multiple-answer-4">Antwort</span>
                                </button>
                            </p>
                        </div>
                    </div>
                    <div id="multiple-question-e" style="display: none;">
                        <div class="row">
                            <div class="col-md-12">
                                <p class="p-3 mb-2 bg-dark text-white">
                                    E:<span id="example-e" >Antwort</span>
                                </p>
                            </div>  
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <p>
                                    <button id="multiple-answer-e-1-btn" class="answer answer-e answer-1-btn btn btn-secondary btn-lg btn-block" >1: 
                                        <span class="multiple-answer-1">Antwort</span>
                                    </button>
                                </p>
                            </div>  
                            <div class="col-md-6">
                                <p>
                                    <button id="multiple-answer-e-3-btn" class="answer answer-e answer-3-btn btn btn-secondary btn-lg btn-block" >3: 
                                        <span class="multiple-answer-3">Antwort</span>
                                    </button>
                                </p>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <p>
                                    <button id="multiple-answer-e-2-btn" class="answer answer-e answer-2-btn btn btn-secondary btn-lg btn-block" >2: 
                                        <span class="multiple-answer-2">Antwort</span>
                                    </button>
                                </p>
                            </div>
                            <div class="col-md-6">
                                <p>
                                    <button id="multiple-answer-e-4-btn" class="answer answer-e answer-4-btn btn btn-secondary btn-lg btn-block" >4: 
                                        <span class="multiple-answer-4">Antwort</span>
                                    </button>
                                </p>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-10">
                        </div>
                        <div class="col-md-2">
                            <p>
                                <button id="multiple-answer-commit-btn" class="answer-commit-btn btn btn-primary btn-lg btn-block" >
                                    <span id="commit-text">Antworten</span>
                                </button>
                            </p>
                            <p>
                                <button id="multiple-continue-btn" class="continue-btn btn btn-primary btn-lg btn-block"  style="display: none;">
                                    <span>Weiter</span>
                                </button>
                            </p>
                        </div>
                    </div>
                </div>
            </div>

注意:但是一个神秘的事情是,它在第​​一个多项选择题下工作正常,而在第二个多项选择题下却没问题。

重要提示:我一直在寻找bug几个小时。当我回答第二个多项选择题时,有一件事打动了我。控制台为我提供两次按钮名称,而不是单击一次。

有人可以帮助我发现错误吗?也许只是我的思维错误?

0 个答案:

没有答案