javascript - 测验 - if 语句

标签 javascript if-statement

为什么选择不正确单选选项时,if语句中的else仍然出现? else 部分只应在未选择单选按钮时出现。真正的结果是下一个问题和可能的答案出现。这是 jsfiddle .我做错了什么?

function checkAnswer(){
submit.onclick = function(){
var radios = document.getElementsByName('choices');
var i = 0;
var len = radios.length; 

    while(i<len){
        if(radios[i].checked){
            if(radios[i].id == allQuestions[0].correctAnswer){
                userScore++;
                alert("curent score:" + userScore);
                break;
            }
        }else{
            alert("Please selected an option");
            break;
        }
        i++
    }
  }
}

最佳答案

您正在遍历所有单选按钮。如果超过 1 个,则保证至少有一个未被选中,因此您将进入 else。试试这个:

function checkAnswer(){
    submit.onclick = function(){
        var radios = document.getElementsByName('choices');
        var i = 0;
        var len = radios.length; 
        var foundSelected = false;
        while(i<len){
            if(radios[i].checked){
                foundSelected = true;
                if(radios[i].id == allQuestions[0].correctAnswer){
                    userScore++;
                    alert("curent score:" + userScore);
                    break;
                }
            }
            i++
        }
        if (!foundSelected)
            alert("Please selected an option");
    }
}

关于javascript - 测验 - if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26145272/

相关文章:

php - 根据先前表单中选定的 list 创建新表单

javascript - 类型错误 : Value can't be converted to a dictionary

r - 添加一列以指示某个项目在不同时间戳中的存在

javascript - "bbcode"脚本不工作

python - python 中的嵌套 if else 语句

javascript - 如何将此 if 语句转换为箭头函数?

按 CTRL+TAB 的 JavaScript 代码?

javascript - 使用 mongoose 更新许多属性的优雅方式

javascript - 在 React Js 中使用 Jest 测试函数

javascript - 为什么我使用 jQuery 的 if/else JS 语句不起作用?