时间倒计,若按右键时间不走了,利用这点可以作蔽

cnhfz 2004-11-09 11:42:22
这是一个简单测试代码:
当你按交卷按钮时上面的时间不走了,取消时又可以走了,这样有的学生就会利用这点进行作蔽.不知如何解决?

<script language="javascript">
var totalSecond,mkh,mname;
totalSecond=44;
totalMinutes=60;
var ss = setInterval(function()
{
str="<b><font size=3 color='#0000FF'>剩余时间:"+totalSecond+"分"+totalMinutes+"秒</font></b>";
sTime.innerHTML=str;
if (totalMinutes==0)
{
totalSecond--;
totalMinutes=60;
}
//若时间到
if (totalSecond<=-1)
{
form1.submit();
}
totalMinutes--;

},1000);

</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<script>
function f_jj() //交卷
{
if (confirm("是否真的要退出?"))
{
}
}

</script>
<body>
<form method="POST" name="form1" action="" target="mainFrame">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><div id="sTime"></div>
</tr>

<tr>
<td align="center">
<input type="button" name="St1" value="交卷" onclick="f_jj()">
</td>
</tr>
</table>
</form>
</body>
</html>
...全文
174 22 打赏 收藏 举报
写回复
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnhfz 2004-11-09
  • 打赏
  • 举报
回复
JK_10000(JK)你的方法是可行,但若该学员在考试中把系统时间改成往后了,剩余时间反而更多了.
u2g2000() 的方法好是好,不过较麻烦一些,其实上面还有别的按钮,每个都这样不方便,再说这样界面不够整洁.
mrshelly 2004-11-09
  • 打赏
  • 举报
回复
时间最好在服务端去控制。
stefli 2004-11-09
  • 打赏
  • 举报
回复
那就用楼上的,给他disabled
u2g2000 2004-11-09
  • 打赏
  • 举报
回复
<script language="javascript">
var totalSecond,mkh,mname;
totalSecond=44;
totalMinutes=60;
var ss = setInterval(function()
{
str="<b><font size=3 color='#0000FF'>剩余时间:"+totalSecond+"分"+totalMinutes+"秒</font></b>";
sTime.innerHTML=str;
if (totalMinutes==0)
{
totalSecond--;
totalMinutes=60;
}
//若时间到
if (totalSecond<=-1)
{
form1.submit();
}
totalMinutes--;

},1000);

</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<script>
function f_jj() //交卷
{
info.innerText = "是否真的要退出?"
form1.St1.disabled = true
form1.St2.disabled = false
form1.St3.disabled = false
}
function f_cancel() //交卷
{
info.innerText = ""
form1.St1.disabled = false
form1.St2.disabled = true
form1.St3.disabled = true
}

</script>
<body>
<form method="POST" name="form1" action="" target="mainFrame">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><div id="sTime"></div>
</tr>

<tr>
<td align="center">
<input type="button" name="St1" value="交卷" onclick="f_jj()">
<input type="submit" name="St2" value="确定" disabled>
<input type="button" name="St3" value="取消" onclick="f_cancel()" disabled>
<span id="info"></span>
</td>
</tr>
</table>
</form>
</body>
</html>
JK_10000 2004-11-09
  • 打赏
  • 举报
回复
<script language="javascript">
var endTestDate=(new Date())*1+45*60000;

var ss = setInterval(function()
{
var nowDate=(new Date())*1;
var leftSeconds=((endTestDate-nowDate)-(endTestDate-nowDate)%1000)/1000;
var leftMenutes=(leftSeconds-leftSeconds%60)/60;
leftSeconds=leftSeconds%60;

//若时间到
if (nowDate>=endTestDate)
{
aler("时间到,得交卷啦!");
form1.submit();
}

str="<b><font size=3 color='#0000FF'>剩余时间:"+leftMenutes+"分"+leftSeconds+"秒</font></b>";
sTime.innerHTML=str;

},1000);

</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<script>
function f_jj() //交卷
{
if (confirm("是否真的要退出?"))
{
}
}

</script>
<body>
<form method="POST" name="form1" action="" target="mainFrame">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><div id="sTime"></div>
</tr>

<tr>
<td align="center">
<input type="button" name="St1" value="交卷" onclick="f_jj()">
</td>
</tr>
</table>
</form>
</body>
</html>
cnhfz 2004-11-09
  • 打赏
  • 举报
回复
ttyp(愿赌服输):在javascript中什么用层代替,具体能说说吗?
shyslysky 2004-11-09
  • 打赏
  • 举报
回复
用层模拟弹出窗口
micker 2004-11-09
  • 打赏
  • 举报
回复
document.onmousedown=stop;
function stop(){
var the_obj = event.srcElement;
if(event.button==2){
//你的代码!
}
}
ttyp 2004-11-09
  • 打赏
  • 举报
回复
用层代替confirm对话框
cnhfz 2004-11-09
  • 打赏
  • 举报
回复
如何作蔽:当点交卷按钮后,什么都不操作,这样时间也不走,也没有消耗时间,等我想好了,取消按钮即可.
cnhfz 2004-11-09
  • 打赏
  • 举报
回复
这只是一个按钮,其实还有好多按钮,只能让点一次那不行,
stefli 2004-11-09
  • 打赏
  • 举报
回复
window.clearInterval(ss);
这样就不走了.
alern_zyb 2004-11-09
  • 打赏
  • 举报
回复
只能点一次,也就是每个考生只能提交一次
cnhfz 2004-11-09
  • 打赏
  • 举报
回复
谢谢大家,结账
JK_10000 2004-11-09
  • 打赏
  • 举报
回复
服务端防作弊,或由监考人员保证考试时间不超过规定,
也许是“较固难”,但是只是“困难”,它还可以克服。

想用前台的来防作弊,却是指导思想错误,根本实现不了,
这样的努力有什么意义呢?
JK_10000 2004-11-09
  • 打赏
  • 举报
回复
前台防作弊?看你怎样防:

在地址栏输入以下,再敲回车:
javascript:alert();
u2g2000 2004-11-09
  • 打赏
  • 举报
回复
上面的是个例子而已,你可以变通一下吧,就像" ttyp(愿赌服输) "所说的,写成层嘛~`


<script language="javascript">
var totalSecond,mkh,mname;
totalSecond=44;
totalMinutes=60;
var ss = setInterval(function()
{
str="<b><font size=3 color='#0000FF'>剩余时间:"+totalSecond+"分"+totalMinutes+"秒</font></b>";
sTime.innerHTML=str;
if (totalMinutes==0)
{
totalSecond--;
totalMinutes=60;
}
//若时间到
if (totalSecond<=-1)
{
form1.submit();
}
totalMinutes--;

},1000);

</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<script>
var myFunction=function(){}
function my_confirm(text){//确认
info.innerText = text
showBox()
return true
}
function showBox(){//显示
myConfirm.style.display = ""
form1.St1.disabled = true
}
function f_jj() //交卷
{
if (my_confirm("是否真的要退出?")){
myFunction=function(){
alert("do anything")
}
}
}

function f_cancel(){//取消
info.innerText = ""
myConfirm.style.display = "none"
form1.St1.disabled = false
}

</script>
<body>
<form method="POST" name="form1" action="" target="mainFrame">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><div id="sTime"></div>
</tr>

<tr>
<td align="center">
<input type="button" name="St1" value="交卷" onclick="f_jj()">
<div id="myConfirm" style="position:absolute;padding:16px;border:2px outset buttonface;background:buttonface;display:none;font:9pt;">
<span id="info"></span><br><br>
<input type="button" name="St2" value="确定" onClick="myFunction()">
<input type="button" name="St3" value="取消" onclick="f_cancel()">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
cnhfz 2004-11-09
  • 打赏
  • 举报
回复
因学员进场时没有统计时间,或者说随到随考,所以人为的防止较固难.
cnhfz 2004-11-09
  • 打赏
  • 举报
回复
谢谢JK_10000(JK)一直关心,不过在现实中确实有的学员是这样作作弊的,人为警告和简单的警示起不了作用.况而象这样的在服务端也不知什么防止.

看起来只能用弹出窗口了,我刚才用模态弹出窗口也不行,不用模态弹出窗口倒时可以做到时间不会停止下来.本人现在实验实验.
JK_10000 2004-11-09
  • 打赏
  • 举报
回复
回复人: JK_10000(JK) ( ) 信誉:121 2004-11-09 13:08:00 得分: 0


回复人: cnhfz(统一台湾) ( ) 信誉:92 2004-11-09 12:56:00 得分: 0

------------------------------
前台验证根本没有办法防止学员作弊,只是起个警示的作用。
防作弊的验证只能在服务端。

服务端的验证可以是:试题发布四十六分钟后,收到的试卷无效。
不过,通常来讲,考试的时间,也可以由监考的老师来保证。
加载更多回复(2)
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-11-09 11:42
社区公告
暂无公告