测试中的奇怪行为即时设计

时间:2016-05-28 15:24:57

标签: javascript jquery input

此帖已于几小时前更新过上一篇文章...

我正在尝试为RPG网站进行多项选择测试。 他们有14个问题,每个问题有8个答案。

8个答案中的每一个对应于一组8个变量中的1个,在提交单击单选按钮的用户时,最终将点添加到适当的变量。

此时进行比较以吐出正确的结果。

我之前遇到的问题已经解决,因此已被删除,但我不想在同一主题上开始一个新线程。

当前问题:

我拼凑了这段代码:(完整的代码将在下面)

// Go through all questions and add +1 for each checked
// input with a value = "monk" 

$('#test').on('click', function() {
$('input[name^= "answer"]:checked').each(function(){
        if ($('input[name = answer]:checked').val() == "monk"){
            secondaryResults.mnk++;
        console.log(secondaryResults);
        }


    })

现在上面的工作完美无缺,如果我尝试相同的代码行但是切换值和变量++,那么它无法工作;我得到的反应是它只是将值添加到第一个变量。

例如:

问题1:答案=和尚

问题2:答案=和尚

问题3:答案=牧师

问题4:答案=向导

使用此代码我希望console.log吐出

僧侣:2

牧师:1

向导:1

相反,它吐出了和尚:4

我尝试为不同的变量创建相同的函数(在您下面看到第二次尝试值/ var berserker / ber)并将其附加到同一个click事件。我也尝试将它放在.each()函数内以及第一个.on()函数内。我每次都得到相同的结果

所以问题:我需要在上面的代码部分中包含哪些内容来制作代码:

  1. 继续计算所有8个变量的检查的每个单独出现
  2. 将用户分数存储在对象内(如下所示)以供日后使用。
  3. 目前代码执行此操作,但仅适用于对象中Monk缩短为mnk的一个输入值/变量。

    所有剧本:

    $(window).load(function() { 
    
    $(".intro").appendTo('#display_box');
    var question = $(".question");
    var questionPosition = -1;
    
    var secondaryResults = {
        def:0,
        ber:0,
        mnk:0,
        rng:0,
        cle:0,
        thf:0,
        mge:0,
    };
    
    var primaryResults = {
        def:0,
        ber:0,
        mnk:0,
        rng:0,
        cle:0,
        thf:0,
        mge:0,
    };
    
    
    
    function clearBox(){
        $("#display_box").children().fadeOut(500).appendTo('#question_holding');
    };
    
    
    
    function cycle(){
    
        question.eq(questionPosition).fadeIn(500).appendTo("#display_box");
        $("#display_box").animate({scrollTop:0}, 500);
    
    
    }
    
    
    
    
    
        $('#leftarrow').on('click', function(){
        questionPosition--;
        if (questionPosition <= -1) {questionPosition = 13};
        clearBox();
        cycle();
    
    
    
    
    
    });
    
    
    
    
    
    $('#rightarrow').on('click', function(){
        questionPosition++;
        if (questionPosition > 13) { questionPosition = 0};
        clearBox();
        cycle();
    
        if($('input[name^="answer"]:checked').length > 13 ) {
            $("#submit").css('display', 'block');
        }
    
    
    
    
    });
    $('#test').on('click', function() {
    $('input[name^= "answer"]:checked').each(function(){
            if ($('input[name = answer]:checked').val() == "monk"){
                secondaryResults.mnk++;
            console.log(secondaryResults);
            }
    
    
        })
    
    
    
    });
    
    $('#test').on('click', function() {
    $('input[name^= "answer"]:checked').each(function(){
            if ($('input[name = answer]:checked').val() == "berserker"){
                secondaryResults.ber++;
            console.log(secondaryResults);
            }
    
    
        })
    
    
    });
    
    });
    

0 个答案:

没有答案