這次帶給大家JS實現選擇題評測系統,JS實現選擇題測評系統的注意事項有哪些,以下就是實戰案例,一起來看一下。
這次文章要跟大家介紹下使用JS怎麼實現簡單的選擇題測評系統,以下文章就給大家JS選擇題測評系統的實現方法和實現代碼,一起來了解下。
包含內容:JS封裝表單,JS校驗表單
# 說是評測系統,感覺只能算是一個小小的Demo,很水,,沒有資料庫,,只用JS做簡單的選擇題評測系統
-------------------------------------------------- ------------------------------
# 一、設計思路
表單封裝:
【1】由於採用JS封裝提交所以,不需要form標籤
【2】放置多個input標籤,作為輸入項目
# 【3】編寫JS取得輸入項,並透過get方式提交到另一個頁面
# 校驗表單(顯示結果)
# 【1】取得get傳入的參數
# 【2】透過JS解析
【3】顯示到對應位置
-------------------------------------------------- ------------------------------
# 二、參考源碼如下
request.html
<title>考试系统</title> <meta> <script></script> <script> function getjson() { var radio = new Array(); for (var i = 1; i <= 5; i++) {//获取radio的值 var radio_name = new String("radio_" + i); radio[i - 1] = $('input:radio[name=' + radio_name + ']:checked').val() } for (var i = 1; i <= 2; i++) {//获取checkbox的的输入 var checkbox_name = new String("checkbox_" + i); var chk_value = []; $('input:checkbox[name=' + checkbox_name + ']:checked').each(function () { chk_value.push($(this).val()); }); radio[i + 4] = "";//置为空 for (var j = 0; j < chk_value.length; j++) { radio[i + 4] = radio[i + 4] + chk_value[j]; } } //数组转json串 var json = JSON.stringify(radio); return json; } function my_confirm() { var json = getjson(); var msg = "您真的答案是:" + json + ",是否确认提交"; if (confirm(msg) == true) { window.location.href = "result.html?radio=" + 5 + "checkbox=" + 2 + "&json=" + json; } else { return false; } } $(function () { var m = 1; var s = 10; setInterval(function () { if (m >= 0) { if (s < 10) { $('#time').html("剩余时间:" + m + ':0' + s); } else { $('#time').html("剩余时间:" + m + ':' + s); } s--; if (s < 0) { s = 59; m--; } if (m == 0 && s < 1) { window.location.href = "result.html?radio=" + 5 + "checkbox=" + 2 + "&json=" + getjson(); } } }, 1000) }) </script> <h3 id="学年期末测试题">2016--2017学年期末测试题</h3> <p></p> <br><br><br> <hr> <h4 id="一-单选题-每题-分-满分-分">一、单选题(每题12分,满分60分)</h4> 1.当方法遇到异常又不知如何处理时,下列() 做法是正确的。<br> <input>A、捕获异常<br> <input>B、抛出异常<br> <input>C、声明异常<br> <input>D、嵌套异常<br> 2.下列说法错误的是() <br> <input>A、在java中一个类被声明为final类型,表示该类不能被继承。<br> <input>B、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,这叫引用传递。<br> <input>C、一个类不能既被声明为 abstract,又被声明为final。<br> <input>D、方法的覆盖(Overriding)和重载(Overloading)是Java多态性的表现,他们没有区别。<br> 3.下列创建数组的方法哪个是错误的? <br> <input>A、Date[] arr = new Date[5];<br> <input>B、Date arr[] = new Date[];<br> <input>C、Date arr[][] = new Date[4][5];<br> <input>D、Date arr[][] = new Date[4][];<br> 4.在读文件Employee.txt 时,可以直接使用该文件作为参数的类是() <br> <input>A、BufferedReader<br> <input>B、FileInputStream<br> <input>C、DataOutputStream<br> <input>D、DataInputStream<br> 5.下列关于线程的说法中,错误的是? <br> <input>A、线程必须通过方法start() 来启动。<br> <input>B、线程创建后,其优先级是可以改变的。<br> <input>C、实现Runnable接口或者从Thread类派生的线程类没有区别。<br> <input>D、当对象用synchronized 修饰时,表明该对象在任一时刻只能由一个线程访问。<br> <br> <h4 id="二-多选题-每题-分-满分-分-错选-少选-多选不得分">二、多选题(每题20分,满分40分,错选、少选、多选不得分)</h4> 6.下列说法正确的是() <br> <input>A、在java中一个类被声明为final类型,表示该类不能被继承。<br> <input>B、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,这叫引用传递。<br> <input>C、一个类不能既被声明为 abstract,又被声明为final。<br> <input>D、方法的覆盖(Overriding)和重载(Overloading)是Java多态性的表现,他们没有区别。<br> 7.当方法遇到异常又不知如何处理时,下列() 做法是不正确的。<br> <input>A、捕获异常<br> <input>B、抛出异常<br> <input>C、声明异常<br> <input>D、嵌套异常<br> <hr> <input>
-------------------------------------------------- ------------------------------
# result.html
nbsp;html> <meta> <title>考试结果</title> <script></script> <script> //获取url中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return unescape(r[2]); return null; //返回参数值 } function showResult() { var answer = ["B", "D", "B", "B", "D", "ABC", "ACD"];//标准答案 var answer_score = [12, 12, 12, 12, 12, 20, 20];//答案的分数 var user_answer = JSON.parse(getUrlParam("json"));//获取用户答案 var radio_num = parseInt(getUrlParam("radio"));//获取单选个数 var checkbox_num = parseInt(getUrlParam("checkbox"));//获取多选个数 var radio_result = 0;//单选分数 var checkbox_result = 0;//多选分数 var radio_right_num = 0;//单选答对个数 var checkbox_right_num = 0;//多选答对个数 var result = 0;//总分数 var user_answer_result = new Array();//用户没到题的答题情况 for (var i = 0; i < user_answer.length; i++) { if (user_answer[i] == answer[i]) { if (i < radio_num) { radio_result = radio_result + answer_score[i]; radio_right_num++; } else { checkbox_result = checkbox_result + answer_score[i]; checkbox_right_num++; } user_answer_result[i] = "正确"; } else { user_answer_result[i] = "错误"; } } result = checkbox_result + radio_result; //结果展示 var show_result1; var show_result2; var show_result3; var show_result4; var show_result5; var show_result6; show_result1 = "你的答案结果为:"; for (var i = 0; i < user_answer.length; i++) { show_result1 = show_result1 + (i + 1) + ":" + user_answer_result[i] + "; "; } show_result2 = "总题目个数:" + user_answer.length; show_result3 = "答对单选题题目个数:" + radio_right_num + "; 得分:" + radio_result; show_result4 = "答对多选题题目个数:" + checkbox_right_num + "; 得分:" + checkbox_result; show_result5 = "答错题目个数:" + (user_answer.length - radio_right_num - checkbox_right_num); show_result6 = " 本次考试总成绩为:" + result; $("p#show_result1").html(show_result1); $("p#show_result2").html(show_result2); $("p#show_result3").html(show_result3); $("p#show_result4").html(show_result4); $("p#show_result5").html(show_result5); $("p#show_result6").html(show_result6); } </script> <h2 id="考试结束">考试结束!</h2> <hr> <input> <p> </p><p> </p><hr> <p></p> <p></p> <p></p> <p></p> <hr> <p></p>
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是JS實現選擇題測評系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1
強大的PHP整合開發環境