所有单选按钮组都有答案后自动显示div

时间:2014-08-01 02:13:22

标签: jquery

我已经坚持这个问题很长一段时间了,我已经开始尝试编写其他测验样式ala-Buzzfeed了。现在,逻辑是,"点击所有单选按钮组中的单选按钮后,显示div"

我有点"有点"通过欺骗我的方式来解决这个问题,a.k.a通过制作一个按钮来监听所有组中的单选按钮被点击时。但是,这不是我想要发生的事情。

帮助?

//PART OF THE CODE GOES...

//RESULTS ALGORITHM 
$('#submit').click(function() { 

    var choice1 = 0;
    var choice2 = 0;
    var choice3 = 0;
    var choice4 = 0;
    var choice5 = 0;
    var choice6 = 0;

    $('input[type=radio]').prop('disabled', true);  

    //REQUIRES ANSWERS TO ALL QUESTIONS
    if (($("input[name='qa4']:checked").length == "0") ||
    ($("input[name='qa5']:checked").length == "0")){
        alert("Please answer all questions.");
    }

    else{
        //TABULATE THE RESULTS OF ANSWERS
        switch(parseInt($("input[name='qa1']:checked").val())){
            case 1: choice1++; break;
            case 2: choice2++; break;
            case 3: choice3++; break;
            case 4: choice4++; break;
            case 5: choice5++; break;
            case 6: choice6++; break;
        }

完整代码小提琴:http://jsfiddle.net/djleonardo/m4Jcb/

2 个答案:

答案 0 :(得分:2)

$("input[name^=qa]").on('change', function() {
    if(!$("input[name^=qa]:not(:checked)").length) {
        //all input box that name begin with "qa" checked
        $('div#id').show();
    } else {
        // do some stuff here while it's not all checked.
    }
});

答案 1 :(得分:0)

我通过将.click()括在giveResults()函数中来解决这个问题,该函数将在.click()上的.a-choice事件中调用,每次输入为:checked ;)

Fixed JsFiddle