Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算JavaScript测验的分数_Javascript_Html - Fatal编程技术网

计算JavaScript测验的分数

计算JavaScript测验的分数,javascript,html,Javascript,Html,我正试着做一个测验,但是我在显示分数时遇到了问题 我使用带有值的单选按钮,错误答案为0,正确答案为25。我无法显示分数。以下是我到目前为止所掌握的内容(HTML和Javascript) 函数resultScore(){ 结果=0; var ans1=document.getElementById(“q1”).值; var ans2=document.getElementById(“q2”).值; var ans3=document.getElementById(“q3”).值; var ans

我正试着做一个测验,但是我在显示分数时遇到了问题

我使用带有值的单选按钮,错误答案为0,正确答案为25。我无法显示分数。以下是我到目前为止所掌握的内容(HTML和Javascript)

函数resultScore(){
结果=0;
var ans1=document.getElementById(“q1”).值;
var ans2=document.getElementById(“q2”).值;
var ans3=document.getElementById(“q3”).值;
var ans4=document.getElementById(“q4”).值;
结果+=ans1+ans2+ans3+ans4;
}

测验:
哪个是机械工程

研究、设计和应用使用电、电子和电磁的设备、装置和系统。 电脑类 利用工程物理、工程数学和材料科学原理设计、分析、制造和维护机械系统的研究 野生动物研究 尼古拉·特斯拉是谁

塞尔维亚裔美国发明家、电气工程师、机械工程师 连接字符串的方法。 允许您存储信息,以便在整个程序中重复使用 允许您根据条件做出决定。 谁开发了德拉瓦尔喷嘴

伊迪丝·克拉克 古斯塔夫·德拉瓦尔 爱迪生 亚历山大·格雷厄姆·贝尔 谁发明了第一个彩虹灯泡

伊迪丝·克拉克 本杰明·富兰克林 克劳德·香农 爱迪生 提交
Score:
只需获取结果dom元素并用新的Score更新内容即可

document.getElementById('userScore').innerHTML = `Score: ${result}`;
  • 您不需要提交-我使用preventDefault和submit事件,而不是单击
  • 您需要将值转换为数字(我使用
    +
  • 你需要在所有检查过的收音机上循环
  • 您不能有重复的ID
window.addEventListener(“加载”,函数(){//
document.getElementById(“form1”).addEventListener(“提交”,函数(e){//提交时
e、 preventDefault();//取消提交
结果=0;
[…document.queryselectoral(“.answer:checked”)]//所有选中的收音机
.forEach(rad=>result+=+rad.value);//添加它们的数值
document.getElementById(“userScore”).innerHTML=result;
})
})

测验:
哪个是机械工程

研究、设计和应用使用电、电子和电磁的设备、装置和系统。 电脑类 利用工程物理、工程数学和材料科学原理设计、分析、制造和维护机械系统的研究 野生动物研究 尼古拉·特斯拉是谁

塞尔维亚裔美国发明家、电气工程师、机械工程师 连接字符串的方法。 允许您存储信息,以便在整个程序中重复使用 允许您根据条件做出决定。 谁开发了德拉瓦尔喷嘴

伊迪丝·克拉克 古斯塔夫·德拉瓦尔 爱迪生 亚历山大·格雷厄姆·贝尔 谁发明了第一个彩虹灯泡

伊迪丝·克拉克 本杰明·富兰克林 克劳德·香农 爱迪生 提交 分数:
简而言之:

  • 将按钮类型更改为
    button
    not
    submit
    ,因为后者会刷新页面,并且不会执行js功能
  • 根据计算结果设置分数内容
  • 在进行计算之前,我使用了
    parseInt()
    将值从字符串解析为int
  • 函数resultScore(){
    结果=0;
    var ans1=parseInt(document.querySelector('input[name=“choice1”]:checked')?document.querySelector('input[name=“choice1”]:checked')。值:0);
    var ans2=parseInt(document.querySelector('input[name=“choice2”]:checked')?document.querySelector('input[name=“choice2”]:checked')。值:0);
    var ans3=parseInt(document.querySelector('input[name=“choice3”]:checked')?document.querySelector('input[name=“choice3”]:checked')。值:0);
    var ans4=parseInt(document.querySelector('input[name=“choice4”]:checked')?document.querySelector('input[name=“choice4”]:checked')。值:0);
    结果=ans1+ans2+ans3+ans4;
    const score=document.querySelector(“.score”);
    score.innerHTML=`score:${result}`;
    }
    
    测验:
    

    哪个是机械工程

    研究、设计和应用使用电、电子和电磁的设备、装置和系统。 电脑类 利用工程物理、工程数学和材料科学原理设计、分析、制造和维护机械系统的研究 野生动物研究 尼古拉·特斯拉是谁

    塞尔维亚裔美国发明家、电气工程师、机械工程师 连接字符串的方法。 允许您存储信息,以便在整个程序中重复使用 允许您根据条件做出决定。 谁开发了德拉瓦尔喷嘴

    伊迪丝·克拉克 古斯塔夫·德拉瓦尔 爱迪生 亚历山大·格雷厄姆·贝尔

    谁发明了第一个彩虹灯泡

    伊迪丝·克拉克 本杰明·富兰克林 克劳德·香农 爱迪生 提交 分数:
    • 请不要对多个元素使用相同的ID。取而代之的是使用名称来获取所有的无线电元素;然后循环并检查变量是否已检查并获取值
    • 将值解析为整数,因为从元素中获取值时,它们是字符串
    • (与计算部分无关)但作为一种良好的做法,如果您有结束标记,请同时使用开始标记(请参阅html中的标签标记)
    已经为您解决了问题

    函数getSelectedValue(名称){ var ele=document.getElementsByName(名称); 对于(i=0;i