需求:
在使用填报表的时候,会遇到让填报表定时提交的需求。比如填报表用于考试时,当到达考试时间后是不允许考试人继续作答的,因此由系统自动控制提交是不可缺少的。
另外,答题提交后还需跳转到其他页面,如等待出成绩的日期,注意事项等。
分析来看
涉及两个方面的问题:1、填报表自动提交;2、提交后可支持跳转到其他页面。
以下内容,润乾填报表的具体实现:
注:这里填报表就不再设计了,可参考相关教程来实现。
针对问题1:可以定义js定时器,结合润乾填报表的提交函数,由系统完成提交动作。具体为:
<%
longcurrent_time=System.currentTimeMillis();
longend_time=0;
longtime=1800000;
%>
<script>
var second = <%= time / 1000%>; // 剩余秒数
var s;
var mi;
// 写一个方法,将秒数专为天数
var toDays = function(){
s =second % 60; // 秒
mi= (second - s) / 60 % 60; // 分钟
varh = ((second - s) / 60 - mi ) / 60 % 24; // 小时
vard = (((second - s) / 60 - mi ) / 60 - h ) / 24 // 天
return "剩余:"+ d + "天" + h + "小时" + mi + "分钟" + s + "秒";
}
//然后写一个定时器
window.setInterval(function(){
second --;
document.getElementById("showTimes").innerHTML= toDays ();
if(s==0 &&mi==0){clearInterval(sub_input1());}
}, 1000);
function sub_input1(){
//当计数器到零时,由_inputSubmit 完成自动提交
document.getElementById("showTimes").innerHTML="00秒";
_inputSubmit('<%=sgid%>');
}
</script>
针对问题2:润乾有实现对提交后保存成功的动作监听,可以通过重写js方法的方式来实现,具体方式为:
<scriptlanguage="javascript">
//固定的方法,当填报表保存成功后回调
var inputApi = {};
inputApi.saveSuccess= function(){
alert("保存成功!");
//调用自己的方法处理自己的需求,如此处是关闭当前页,并兼容所有浏览器。如果要实现到其他地址的跳转,直接通过js实现即可。
closeWebPage();
}
function closeWebPage(){
if(navigator.userAgent.indexOf("MSIE") > 0) {//close IE
if(navigator.userAgent.indexOf("MSIE 6.0") > 0) {
window.opener = null;
window.close();
}else {
window.open('', '_top');
window.top.close();
}
}
elseif (navigator.userAgent.indexOf("Firefox") > 0) {//closefirefox
window.location.href = 'about:blank ';
}else if(navigator.userAgent.indexOf("Chrome") > 0) {//close chrome
window.location.href = 'about:blank ';
}else {//close chrome;It is effective when it is only one.
window.opener = null;
window.open('', '_self');
window.close();
}
}
</script>