用html做一个从题库中抽100道题的考试页面,点击交卷得到分数

用html做一个从题库中抽100道题的考试页面,点击交卷得到分数,第1张

前台打开页面,向后端请求题目

后端出题,返回给前台数据

前端收到数据,进行题目展现。

在前端做题。做好后题目提交给后台。

后端判卷,返回成绩数据

前端接收成绩,展现成绩。

大概这个流程。

单纯html来做的话,那么你的题库就要在前端,用js来弄,而且做题,判卷都要用js,相对有后台我个人感觉,只题库一项用js来维护就很难管理。

//闲着,码段代码玩

(function(){

var div=document.createElement("div")

,create=document.createElement("input")

,tm=document.createElement("div")

,score=document.createElement("div")

,exp=[{js:"+",w:"+"},{js:"-",w:"-"},{js:"*",w:"×"},{js:"/",w:"÷"}]

//出题

function ct(){

score.innerHTML="开始做题吧"

score.style.color="#000"

tm.innerHTML=""

tm.list=[]

for(var i=0i<10i++){

var s=document.createElement("span")

,p=document.createElement("input")

,jg=document.createElement("span")

,rnd=parseInt(Math.random()*4)

,v1=parseInt(Math.random()*1000)//千以内

,v2=exp[rnd]

,v3=parseInt(Math.random()*1000)

//除法,规范数值

if(rnd==3){

while(v3==0){

v3=parseInt(Math.random()*1000)

}

//寻找整除

if(v1<v3){

var t=v3

v3=v1

v1=t

}

if(Math.random()*10>5 && v1/v3<v3){//一半几率调整除数与被除数的间隔

v3=parseInt(v3/3)+1

}

if(v1%v3!=0){

v1-=v1%v3

}

}

s.innerText=v1+v2.w+v3+"="

p.type="text"

p.style.width="80px"

p._value=eval(v1+v2.js+v3)+""

p.jg=jg

p.onblur=js

tm.appendChild(s)

tm.appendChild(p)

tm.appendChild(jg)

tm.appendChild(document.createElement("br"))

tm.list.push(p)

}

}

//出题按钮

create.type="button"

create.value="出题"

create.onclick=ct

//显示界面

div.appendChild(create)

div.appendChild(tm)

div.appendChild(score)

document.body.appendChild(div)

//显示题目

ct()

//计算结果

function js(e){

var o=e.target

//答案错误提示部分

if(o.value==o._value){

o.jg.innerHTML="对"

o.jg.style.color="blue"

}else if(o.value!=""){

o.jg.innerHTML="错"

o.jg.style.color="red"

}else{

o.jg.innerHTML=""

}

var count=0,ecount=0,wzcount=0

for(var i=0i<tm.list.lengthi++){

o=tm.list[i]

if(o.value==o._value){

count++

}else if(o.value!=""){

ecount++

}else{

wzcount++

}

}

score.style.color="#000"

if(wzcount==0){

if(count==10){

score.innerHTML="满分100"

score.style.color="blue"

}else if(count>5){

score.innerHTML=count*10+"分,加油,改正小错误"

}else{

score.innerHTML=count*10+"分,好挫"

score.style.color="red"

}

for(var i=0i<tm.list.lengthi++){

o=tm.list[i]

o.jg.innerHTML=o._value

}

}else if(wzcount<4){

score.innerHTML="冲啊"

}else if(wzcount<6){

score.innerHTML="快点,就好了"

}else{

score.innerHTML="沉着冷静"

}

}

})()

你说的多项选择题,我是不是可以理解成多选??

多选的实现是这样的:

第一: 必须将多选框放到form里面。

第二: 然后name属性完全一样,value不相同。这样当你提交到Action中的时候,只需要使用request对象获取toselect的值就行了。

第三: 获取值:request.getParameterValues("toselect"),就会将选中的多选框里面的value获取,并且返回一个String[]数组,这个数组里面就有你想要的值:即选中的值

<html>

<body>

<form>

<input type = "checkbox" value = "A" name = "toselect"/>A

<input type = "checkbox" value = "B" name = "toselect"/>B

<input type = "checkbox" value = "C" name = "toselect"/>C

<input type = "checkbox" value = "D" name = "toselect"/>D

</form>

</body>

</html>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7606629.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存