jsp里js倒计时,无法自动提交,页面不跳转?????

时间:2021-06-08 22:03:51
<script language="JavaScript">
<!-- //
//var time = document.forms[0].date.value;
var startTime = new Date();//这里的new Date()换成你后台传递的时间
var EndTime=startTime.getTime()+1*60*1000;//这个设置倒计时的时间,按毫秒算,也即60*1000就是一分钟
function GetRTime(){
var NowTime = new Date();
var nMS =EndTime - NowTime.getTime();
var nH=Math.floor(nMS/(1000*60*60)) % 24;
var nM=Math.floor(nMS/(1000*60)) % 60;
var nS=Math.floor(nMS/1000) % 60;
if (nH<=0 && nM <=0 && nS <=0) {
  alert("时间到了,提交...");
   document.exam.submit();
}
 document.getElementById("RemainH").innerHTML=nH;
 document.getElementById("RemainM").innerHTML=nM;
 document.getElementById("RemainS").innerHTML=nS;
setTimeout("GetRTime()",1000);

}
window.onload=GetRTime;
// -->
</script>

<title>考试</title>
</head>
<body>
 <form name="exam" action="tt.jsp" method="post">
 <input type="hidden" name="date" value="<%=session.getAttribute("date") %>">
<center>
<div id="container">
<div id="header">
<div>
<div id="mainContent">
<div id="sidebar">
<br><br>
<%=session.getAttribute("id").toString()%>
 <%=session.getAttribute("name").toString()%>
<br><br>
<%=session.getAttribute("professional") %>专业&nbsp;
<%=session.getAttribute("grade") %>级&nbsp;
<%=session.getAttribute("banji") %>班
</div>
<div id="sidebar2">
<br>
距离考试结束还有:
<br>
<h3><font color="#ff0000"><strong id="RemainH">XX</strong>时<strong id="RemainM">XX</strong>分<strong id="RemainS">XX</strong>秒</font></h3> 
</div>
<div id="content" align="left">
<%
String danxCount = session.getAttribute("danxCount").toString();
 String danxScore = session.getAttribute("danxScore").toString();
 String danxTotal = String.valueOf(Integer.parseInt(danxCount)*Double.parseDouble(danxScore));
%>
 <strong> 
一、单项选择题(<%=danxCount %> * <%=danxScore %> = <%=danxTotal %> 分)
</strong>
<br>
<%
OptionsDAO od = new OptionsDAO(); 
try {
int i = 1;
//存放单选题题号
int qId1[] = new int[Integer.parseInt(danxCount)]; 
//存放单选题正确答案
String rightAnswer1[] = new String[Integer.parseInt(danxCount)];
ArrayList<Question> list1 = (ArrayList<Question>) session.getAttribute("list1");
if (list1.size() != 0) {
Iterator<Question> it = list1.iterator(); 
while (it != null && it.hasNext()) {
      Question que = (Question)it.next();
      qId1[i-1] = que.getQId();  //小心数组越界
      rightAnswer1[i-1] = que.getAnswer();
    %>
    
<%=(i + ". " + que.getTitle())%>
<br>

<%
             ArrayList<Options> oplist1 = od.find(que.getQId());
             if (oplist1.size() != 0) {
                Iterator<Options> opit1 = oplist1.iterator();
                while (opit1 != null && opit1.hasNext()) {
                    Options opt = (Options) opit1.next();
        %>
           &nbsp;&nbsp;
          <input type="radio" name="<%=String.valueOf(que.getQId()) %>" value="<%=opt.getLabel() %>">
       <%=(opt.getLabel() + ". " + opt.getBody()) %>      
      <br>

       <% 
                }  //end 2 while
     } 
  
     i++;
 
  }//end 1 while
%>
  <%
    session.setAttribute("qId1",qId1);
    session.setAttribute("rightAnswer1", rightAnswer1);
   %>
<%
  }
} catch (Exception e) {
  System.out.println("显示单选题:" + e.getMessage());
}
%>

 <br><br>
 
</div>
</div>
<div id="footer">
<center>
<input type=submit name="submit" value="交卷">
</center>
</div>
</div>
<br>
</center>
</form>
</body>
</html>

11 个解决方案

#1


有懂得帮帮忙啊

#2


这样帖一堆,而且还是JSP 嵌的JAVA代码,哪个愿意看

#3


你这貌似是要做一个考试系统吧,给出答题的人倒计时,同时在考试时间到了以后自动提交,是吧?
不过页面代码有点乱,只要思路对了,代码问题最好是自己慢慢调试。

#4


引用 1 楼 mtgongren 的回复:
有懂得帮帮忙啊


有点急,就粘贴过来了,没简化

#5


引用 2 楼 simplesi 的回复:
这样帖一堆,而且还是JSP 嵌的JAVA代码,哪个愿意看


回错了,

#6


老兄,你的代码的确有点乱,不是很急的话就自己慢慢调试下吧,急的话就问问同事,我也没时间,sorry。。
 不过自己解决出来的问题,会有很大的成就感。

#7


引用 3 楼 tt14344 的回复:
你这貌似是要做一个考试系统吧,给出答题的人倒计时,同时在考试时间到了以后自动提交,是吧?
不过页面代码有点乱,只要思路对了,代码问题最好是自己慢慢调试。



是啊,页面贴过来乱了,好像<form>里写上试题后,时间到了无法自动提交。在这个form上写个
<form action="tt.jsp" method="post"></form>就可以提交。不理解

#8


代码太多不想看~

交给你一个检测自己页面代码错误的方法:
1.先去掉JS,然后使用最简单的<input type="submit" value="提交">该按钮提交该form,如果能提交就可以确定是JS的问题,如果不能就要找找你form中的action问题,尤其是路径问题,这个是初学者的一个障碍。
2.写一个最简单的form,使用你该代码中的JS调用该form看看是否能够提交。

遇到错误不可怕,最可怕的是你不懂得解决错误,排查错误。谢谢

#9


引用 8 楼 tt14344 的回复:
代码太多不想看~

交给你一个检测自己页面代码错误的方法:
1.先去掉JS,然后使用最简单的<input type="submit" value="提交">该按钮提交该form,如果能提交就可以确定是JS的问题,如果不能就要找找你form中的action问题,尤其是路径问题,这个是初学者的一个障碍。
2.写一个最简单的form,使用你该代码中的JS调用该form看看是否能够提交。

……

按照8楼的去做吧。。

#10


比较无聊,帮你看了一下。

     <input type=submit name="submit" value="交卷">


把 name="submit"给删了就行,否则 会和submit方法冲突。导致浏览器无法确定。

#11


谢谢你了,问题解决了,貌似就是这个在捣鬼。
引用 10 楼 coolfatman 的回复:
比较无聊,帮你看了一下。

HTML code

     <input type=submit  name="submit" value="交卷">



把 name="submit"给删了就行,否则 会和submit方法冲突。导致浏览器无法确定。

#1


有懂得帮帮忙啊

#2


这样帖一堆,而且还是JSP 嵌的JAVA代码,哪个愿意看

#3


你这貌似是要做一个考试系统吧,给出答题的人倒计时,同时在考试时间到了以后自动提交,是吧?
不过页面代码有点乱,只要思路对了,代码问题最好是自己慢慢调试。

#4


引用 1 楼 mtgongren 的回复:
有懂得帮帮忙啊


有点急,就粘贴过来了,没简化

#5


引用 2 楼 simplesi 的回复:
这样帖一堆,而且还是JSP 嵌的JAVA代码,哪个愿意看


回错了,

#6


老兄,你的代码的确有点乱,不是很急的话就自己慢慢调试下吧,急的话就问问同事,我也没时间,sorry。。
 不过自己解决出来的问题,会有很大的成就感。

#7


引用 3 楼 tt14344 的回复:
你这貌似是要做一个考试系统吧,给出答题的人倒计时,同时在考试时间到了以后自动提交,是吧?
不过页面代码有点乱,只要思路对了,代码问题最好是自己慢慢调试。



是啊,页面贴过来乱了,好像<form>里写上试题后,时间到了无法自动提交。在这个form上写个
<form action="tt.jsp" method="post"></form>就可以提交。不理解

#8


代码太多不想看~

交给你一个检测自己页面代码错误的方法:
1.先去掉JS,然后使用最简单的<input type="submit" value="提交">该按钮提交该form,如果能提交就可以确定是JS的问题,如果不能就要找找你form中的action问题,尤其是路径问题,这个是初学者的一个障碍。
2.写一个最简单的form,使用你该代码中的JS调用该form看看是否能够提交。

遇到错误不可怕,最可怕的是你不懂得解决错误,排查错误。谢谢

#9


引用 8 楼 tt14344 的回复:
代码太多不想看~

交给你一个检测自己页面代码错误的方法:
1.先去掉JS,然后使用最简单的<input type="submit" value="提交">该按钮提交该form,如果能提交就可以确定是JS的问题,如果不能就要找找你form中的action问题,尤其是路径问题,这个是初学者的一个障碍。
2.写一个最简单的form,使用你该代码中的JS调用该form看看是否能够提交。

……

按照8楼的去做吧。。

#10


比较无聊,帮你看了一下。

     <input type=submit name="submit" value="交卷">


把 name="submit"给删了就行,否则 会和submit方法冲突。导致浏览器无法确定。

#11


谢谢你了,问题解决了,貌似就是这个在捣鬼。
引用 10 楼 coolfatman 的回复:
比较无聊,帮你看了一下。

HTML code

     <input type=submit  name="submit" value="交卷">



把 name="submit"给删了就行,否则 会和submit方法冲突。导致浏览器无法确定。