//窗体滚动时,需要固定的内容 $(document).ready(function () { var cardbox = $(".pagerCard"); if (cardbox.size() > 0) { var off = cardbox.offset(); window.cardbox_top = off.top; // } //重构提示框 window.alert=function(msg,title,width,height,closeEvent){ $('body').css('overflow','hidden'); if(title==null || title=="")title="警告"; if(width==null)width=400; if(height==null)height=300; var box=new MsgBox(title,msg,width,height,"alert",null,closeEvent); box.OverEvent =function(){ if(closeEvent!=null)closeEvent(); //window.MsgBox.Close(); $('body').css('overflow','auto'); } box.Open(); }; window.confirm=function(title,msg,width,height,enterEvent,closeEvent) { $('body').css('overflow','hidden'); var msg = new MsgBox(title, msg, width, height, "confirm"); if(enterEvent!=null)msg.EnterEvent =enterEvent; msg.OverEvent =function(){ if(closeEvent!=null)closeEvent(); //window.MsgBox.Close(); $('body').css('overflow','auto'); } msg.Open(); }; $(window).scroll(); }); $(window).scroll(function () { var cardbox = $(".pagerCard"); if (cardbox.size() > 0) { var offsetTop = $(window).scrollTop(); //滚上去的高度值 if (offsetTop > window.cardbox_top) { cardbox.css("margin-top", (offsetTop - window.cardbox_top + 15) + "px"); } else { cardbox.css("margin-top", 10 + "px"); } } }); /* 考试现场的处理对象 */ function Examing() { //相关属性 this.attr = { theme: null, //考试主题 uid: null, //全局唯一值 testpager: 0, //试卷id stid: 0, //学员id isToggleWindows: false, //是否允许切换窗口(窗口失去焦点,是否自动提交) isDisabledFresh: false, //是否禁止刷新页面,为true时禁止 isRightClick: true, //是否禁止复制,为true时禁止 isShowBtn: false //是否显示答案的确认按钮 }; //时间,包括服务器端时间,客户端时间,当前时间 this.time = { server: new Date(), //服务器时间 client: new Date(), //客户端时间 now: new Date(), //当前时间,通过服务器时间校正过的 span: 0, //考试时长(单位分钟) wait: 0, //离开始考试还有多久,单位秒 begin: new Date(), //考试开始时间 over: new Date(), //考试结束时间 surplus: 0, //考试剩余时间 request: -1, //加载试题的时间 requestlimit: 10, //离开考多久的时候,开始预加载试题,单位:分钟 getmin: function (sec) { return parseInt(sec / 60); }, //通过总秒数,获取分钟 getsec: function (sec) { return parseInt(sec % 60); } //通过总秒数,获取秒 }; //考试中的状态 this.state = { init: false, //有没有初始化 begin: false, //考试开始了没有 over: false, //考试结束了没有 loading: false, //是否正在加载试卷 loaded: false, //试卷是否加载完成 layouting: false, //是否正在布局 layouted: false, //是否布局完成 uploading: false, //是否正往服务器上提交数据 submiting: false, //是否正在交卷 submit: false //是否交卷 }; //涉及到的数据源 this.data = { ques: null, //从服务器端获取的试题数据 answer: null //答题信息 }; //涉及到的事件 this.event = { timer: Examing.calculationTimer, //时间循环 begin: Examing.beginEventFunc, //考试开始事件 layout: Examing.setExamQuesLayout, //将试题展现出来的事件 over: null, //考试结束事件 submit: null //交卷事件 }; //涉及的方法 this.func = {}; Examing.Obj = this; } //当前考试对象,用于记录全局的值 Examing.Obj = null; Examing.prototype.Init=function(){ //禁止刷新页面 if (this.attr.isDisabledFresh) { document.body.onselectstart = document.body.oncontextmenu = function () { return false; }; document.body.onpaste = document.body.oncopy = function () { return false; }; document.body.onkeydown = function () { if (event.keyCode == 116) { event.keyCode = 0; event.cancelBubble = true; return false; } } } //禁用鼠标右键,禁止复制 if (this.attr.isRightClick) { document.oncontextmenu = new Function('event.returnValue=false;'); document.onselectstart = new Function('event.returnValue=false;'); } /*当窗体失去焦点提示交卷 */ if (!this.attr.isToggleWindows) { $(window).blur(function () { var exam=window.exam; if(exam.state.submit)return; //如果交过卷了,则不再提醒 if(!exam.state.begin)return; //没有开始,则不再提醒 if(exam.state.over)return; //没有已经结束,则不再提醒 var n = $("#cardBox dd[class]").size(); var sum = $("#cardBox dd").size(); var show = "离开考试界面将自动交卷;\n"; if (n < sum) { show += "\n您还有 " + (sum - n) + "道题没有做;\n"; } show += "确定交卷吗?"; $(".MsgBox,#msgMask").remove(); window.confirm("请勿切换考试界面",show,400,300,function(){ submitResult(2); },null); window.focus(); }); } $(window).focus(function () { }); // //初始时间间和结束时间 $(".startTime").text(this.time.begin.Format("yyyy-MM-dd hh:mm:ss")); $(".overTime").text(this.time.over.Format("yyyy-MM-dd hh:mm:ss")); } //计算时间, Examing.prototype.TimeCalc = function () { //计算当前时间,经过服务器端时间的校正 var curr = new Date(this.time.server.getTime() + (new Date().getTime() - this.time.client.getTime())); this.time.now = curr; //如果没有初始化 if (!this.state.init) { //加载试题的最早时间,开考前10分钟 var first = new Date(this.time.begin.getTime() - this.time.requestlimit * 60 * 1000); //最晚加载时间,开考前三分钟 var last = new Date(this.time.begin.getTime() - 3 * 60 * 1000); //生成随机的试题加载时间(最早时间与早晚时间之间),防止并发请求造成服务器负荷过重 this.time.request = this.time.now >= last ? last : new Date(first.getTime() + Math.random() * (last.getTime() - first.getTime())); //设置初始化过了 this.state.init = true; } //随着时间进展,触发一系统列事件 this.event.timer(this); } // //时间循环执行,计算各项值 Examing.calculationTimer = function (examobj) { if (examobj.state.submit) return; Examing.calculationWaitTime(examobj); Examing.calculationOverTime(examobj); //***各种状态 examobj.state.begin = examobj.time.wait < 0; //考试是否开始,等待时间小于0,即为开始 examobj.state.over = examobj.time.surplus < 0; //考试是否结束,剩余时间小于0,即为考试结束 //***事件执行 if (examobj.state.begin) examobj.event.begin(examobj); //考试开始事件 //开始加载试题 if (examobj.time.now > examobj.time.request && examobj.time.now < examobj.time.over) { Examing.getExamQues(examobj); } } //计算考试开始的等待时间(离开始剩余时间) Examing.calculationWaitTime = function (examobj) { //当前时间,来自服务端 $("#currTime").text(examobj.time.now.Format("yyyy-MM-dd hh:mm:ss")); //计算离考试开始时间,还有多久,单位:秒 examobj.time.wait = Math.floor((examobj.time.begin.getTime() - examobj.time.now.getTime()) / 1000); //如果还没有开始 if (examobj.time.wait >= 0) { var notTime = $("#distanceTime"); notTime.show(); notTime.find(".mm").text(examobj.time.getmin(examobj.time.wait)); notTime.find(".ss").text(examobj.time.getsec(examobj.time.wait)); //显示考试时限的剩余时间 var resTime = $("#residueTime"); resTime.find(".mm").text(examobj.time.span); resTime.find(".ss").text("00"); //交卷按钮禁用 $("#pagerSubmitBox").attr("isStart", "no").addClass("noStart"); } } //计算考试的剩余的时间(离结束的剩余时间) Examing.calculationOverTime = function (examobj) { //计算剩余的时间,还剩多久(单位为秒) examobj.time.surplus = Math.floor((examobj.time.over.getTime() - examobj.time.now.getTime()) / 1000); if (examobj.time.wait < 0) { //剩余时间大于0,说明还没有考完 if (examobj.time.surplus > 0) { var resTime = $("#residueTime"); resTime.show(); resTime.find(".mm").text(examobj.time.getmin(examobj.time.surplus)); resTime.find(".ss").text(examobj.time.getsec(examobj.time.surplus)); } else { //考试结束 if (examobj.time.now > examobj.time.begin && examobj.time.now <= examobj.time.over) { if (window.submit != true) { Mask.Submit(); window.submit = true; submitResult(2); } } } } } //开始考试的事件方法 Examing.beginEventFunc = function (examobj) { //交卷按钮启用,显示等待时间的信息隐藏 $("#pagerSubmitBox").attr("isStart", "yes").removeClass("noStart"); $("#distanceTime").hide(); //设置试题 if (!examobj.state.layouted && !examobj.state.layouting) { examobj.event.layout(examobj); //进行试题展现 } } //获取试题 Examing.getExamQues = function (examobj) { if (examobj.state.loading == true) return; if (examobj.state.loaded == true) return; if (!(examobj.time.now > examobj.time.request && examobj.time.now < examobj.time.over)) return; if ($("#pagerArea dl dd").size() > 0) return; var urlPath = "/ajax/ExamPager.ashx?timestamp=" + new Date().getTime(); $.ajax({ type: "POST", url: urlPath, dataType: "text", data: { examid: examID, tpid: testPagerID, stid: stid }, //开始,进行预载 beforeSend: function (XMLHttpRequest, textStatus) { examobj.state.loading = true; if (examobj.state.begin) Mask.Loading(); }, //加载出错 error: function (XMLHttpRequest, textStatus, errorThrown) { //examobj.state.loading = false; alert("试题加载错误"); }, //加载成功! success: function (data) { //examobj.state.loading = false; examobj.state.loaded = true; if (data == "2") { examobj.state.submit = true; alert("您已经交过卷了!"); } else { var ques = eval("(" + data + ")"); examobj.data.ques = ques; $(".currTime").css("color", "#f00"); //如果开始考试了,才进行布局 if (examobj.state.begin) { if (!examobj.state.layouted && !examobj.state.layouting) { examobj.event.layout(examobj); //进行试题展现 } } } } }); } //设置试题的布局 Examing.setExamQuesLayout = function (examobj) { var ques = examobj.data.ques; if (ques == null) { Examing.getExamQues(examobj); return; } examobj.state.layouting = true; //正在布局 //输出试题 var quesBox = $("#pagerArea"); //设置结束时间 quesBox.attr("overTime", examobj.time.over.getTime()); quesBox.attr("beginTime", examobj.time.begin.getTime()); var hanzi = ["一", "二", "三", "四", "五", "六", "七", "八", "九"]; for (var i = 0; i < ques.length; i++) { for (var j = 0; j < ques[i].ques.length; j++) { var q = ques[i].ques[j]; if (q != null && q != undefined && q != '') { //q.Qus_Title = q.Qus_Title.replace(/"/ig, "\""); } } var func = eval("setQuestionLayout" + ques[i].type); if ("undefined" != typeof (func)) quesBox.append(func(ques[i], i, hanzi[i])); } fileupEvent(); //给试题加上序号 quesBox.find(".order").each(function (index) { $(this).html(index + 1); }); setCardQues(); //设置答题卡 quesEvent(); //答题时的事件 getResult(); //获取已经做好的试题 //交卷事件 $("#pagerSubmitBox").click(function () { var n = $("#cardBox dd[class]").size(); var sum = $("#cardBox dd").size(); if (n < sum) { window.confirm("确定交卷吗?","您还有" + (sum - n) + "道题没有做,确定交卷吗?",400,300, function(){ submitResult(2);},null); } else { submitResult(2); } }); examobj.state.layouted = true; //完成布局 //如果要显示确认按钮 if (Examing.Obj.attr.isShowBtn) { $("#pagerArea dl dd").css("padding-bottom", "60px"); } } //设置答题卡 function setCardQues() { var tit = $("#cardBox"); //设置结束时间 tit.attr("overTime", $("#pagerArea").attr("overTime")); tit.attr("beginTime", $("#pagerArea").attr("beginTime")); $("#pagerArea dl").each(function () { var name = $(this).find("dt b").text(); var num = $(this).find("dt span").text(); tit.append("
" + "
" + name + "
" + num + "
"); var tm = "
"; $(this).find("dd").each(function () { var order = $(this).find(".order").text(); tm += "
" + order + "
"; }); tit.append(tm + "
"); }); //当点击试题分类时,定位试卷到指定位置 tit.find("div.quesType").click(function () { var type = $(this).attr("type"); var dl = $("#pagerArea dl[type=" + type + "]"); var off = dl.offset(); $(window).scrollTop(off.top); }); //当点击试题时,定位试卷到指定位置 tit.find("dd").click(function () { var qid = $(this).attr("qid"); var dd = $("#pagerArea dd[qid=" + qid + "]"); var off = dd.offset(); $(window).scrollTop(off.top); }); $(".quesCard").show(); //显示多少道题 $(".tpcount").text($("#pagerArea dl dd").size()); $(".pagerCard").height($(window).height()); var hg= $(".quesCard").parent().height(); $(".quesCard").height(hg-$(".quesCard").siblings().height()-20); $("#cardBox").height( $(".quesCard").height()-$(".cardTit").outerHeight()); } /* 试题展示 */ //设置对试题的把握程序 function setQuesBtn(qusid) { var style = ""; if (!Examing.Obj.attr.isShowBtn) style = "display:none;"; //按钮 var html = "
"; html += "
您是否对该题有把握:
"; html += "
非常有把握
"; html += "
没有把握
"; html += "
完全靠瞎蒙
"; html += "
"; return html; } //单选题 function setQuestionLayout1(qitem, typeIndex, indexHanzi) { var html = "
" + indexHanzi + "、单选题(本大题共" + qitem.count + "道小题,每题" + (qitem.count > 0 ? Math.floor(qitem.number / qitem.count * 10) / 10 : 0) + "分/共" + qitem.number + "分
"; for (var i = 0; i < qitem.ques.length; i++) { var q = qitem.ques[i]; html += "
"; var x=unescape(q.Qus_Title) ; html += "
" + unescape(q.Qus_Title) + "(" + q.Qus_Number + "分)
"; //选择项 html += "
"; var answer = q.Answer; for (var j = 0; j < answer.length; j++) { html += "
"; html += "
" + String.fromCharCode(65 + j) + "、
" html += "
" + unescape(answer[j].Ans_Context) + "
"; } html += "
"; //选择按钮 html += "
"; for (var j = 0; j < answer.length; j++) { html += "
" + String.fromCharCode(65 + j) + "
"; } html += "
"; html += setQuesBtn(q.Qus_ID); //增加确认把握的选项 html += "
"; } html + "
"; return html; } function setQuestionLayout2(qitem, typeIndex, indexHanzi) { var html = "
" + indexHanzi + "、多选题(本大题共" + qitem.count + "道小题,每题" + (qitem.count > 0 ? Math.floor(qitem.number / qitem.count * 10) / 10 : 0) + "分/共" + qitem.number + "分
"; for (var i = 0; i < qitem.ques.length; i++) { var q = qitem.ques[i]; html += "
"; html += "
" + unescape(q.Qus_Title) + "(" + q.Qus_Number + "分)
"; //选项 html += "
"; var answer = q.Answer; for (var j = 0; j < answer.length; j++) { html += "
"; html += "
" + String.fromCharCode(65 + j) + "、
" html += "
" + unescape(answer[j].Ans_Context) + "
"; } html += "
"; //选择按钮 html += "
"; for (var j = 0; j < answer.length; j++) { html += "
" + String.fromCharCode(65 + j) + "
"; } html += "
"; html += setQuesBtn(q.Qus_ID); html += "
"; } return html; } function setQuestionLayout3(qitem, typeIndex, indexHanzi) { var html = "
" + indexHanzi + "、判断题(本大题共" + qitem.count + "道小题,每题" + (qitem.count > 0 ? Math.floor(qitem.number / qitem.count * 10) / 10 : 0) + "分/共" + qitem.number + "分
"; for (var i = 0; i < qitem.ques.length; i++) { var q = qitem.ques[i]; html += "
"; html += "
" + unescape(q.Qus_Title) + "(" + q.Qus_Number + "分)
"; //按钮 html += "
"; html += "
正确
"; html += "
错误
"; html += "
"; html += setQuesBtn(q.Qus_ID); html += "
"; } return html; } function setQuestionLayout4(qitem, typeIndex, indexHanzi) { var html = "
" + indexHanzi + "、简答题(本大题共" + qitem.count + "道小题,每题" + (qitem.count > 0 ? Math.floor(qitem.number / qitem.count * 10) / 10 : 0) + "分/共" + qitem.number + "分
"; for (var i = 0; i < qitem.ques.length; i++) { var q = qitem.ques[i]; html += "
"; html += "
" + unescape(q.Qus_Title) + "(" + q.Qus_Number + "分)
"; //选项 html += "
"; html += ""; html += "
上传附件:"; html += ""; html += "
"; html += "
"; html += setQuesBtn(q.Qus_ID); html += "
"; } return html; } function setQuestionLayout5(qitem, typeIndex, indexHanzi) { var html = "
" + indexHanzi + "、填空题(本大题共" + qitem.count + "道小题,每题" + (qitem.count > 0 ? Math.floor(qitem.number / qitem.count * 10) / 10 : 0) + "分/共" + qitem.number + "分
"; for (var i = 0; i < qitem.ques.length; i++) { var q = qitem.ques[i]; html += "
"; html += "
" + unescape(q.Qus_Title) + "(" + q.Qus_Number + "分)
"; //选项 html += "
"; var answer = q.Answer; for (var j = 0; j < answer.length; j++) { html += "
"; html += "
(" + (j + 1) + ")
" html += "
"; //html += "(" + (j + 1) + ") " html += ""; html += "
"; } html += "
"; html += setQuesBtn(q.Qus_ID); html += "
"; } return html; } /* 简答题的附件上传 */ function fileupEvent() { //附件上传 $("input.btnUp").click(function () { var file = $(this).parent().find(".fileinput"); if ($.trim(file.val()) == "") { alert("请选择要上传的文件!"); file.focus(); return; } var qid = file.attr("qid"); var url = '/Utility/ExamFileUp.ashx?stid=' + stid + "&examid=" + examID + "&qid=" + qid; $.ajaxFileUpload({ url: url, //用于文件上传的服务器端请求地址 secureuri: false, //一般设置为false fileElementId: file.attr("id"), //文件上传空间的id属性 dataType: 'json', //返回值类型 一般设置为json success: function (data, status) { $("#img1").attr("src", data.imgurl); if (typeof (data.error) != 'undefined') { if (data.error != '') { alert(data.error); } else { var box = $(".fileupBox[qid=" + data.qid + "]"); box.find(".upfileArea").hide(); box.find(".filenameArea").show(); box.find(".accfile").html(data.filename); $("#pagerArea dl[type=4] dd[qid="+data.qid+"] .itemBox textarea").focusout(); } } }, error: function (data, status, e) { alert(e); } }); }); //附件加载 $(".fileupBox").each(function () { var qid = $(this).attr("qid"); var url="/Utility/ExamFileLoad.ashx?stid={0}&examid={1}&qid={2}".format(stid,examID,qid); $.get(url, function (data) { var d = eval("(" + data + ")"); var box = $(".fileupBox[qid=" + d.qid + "]"); if (d.filename != "") { box.find(".upfileArea").hide(); //上传控件隐藏 box.find(".filenameArea").show(); //显示文件名称区域 if(d.filename!=""){ box.find(".accfile").html(d.filename); //赋值文件名 } } $("#pagerArea dl[type=4] dd[qid=" + d.qid+"] .itemBox textarea").focusout(); //删除已经上传的附件 box.find(".delfile").click(function () { var bx = $(this).parents(".fileupBox"); bx.find(".upfileArea").show(); bx.find(".filenameArea").hide(); var qid = $(this).parent().parent().attr("qid"); var url="/Utility/ExamFileDel.ashx?stid={0}&examid={1}&qid={2}".format(stid,examID,qid); $.get(url,function(){ var dd=$("#pagerArea dl[type=4] dd[qid="+qid+"]"); dd.find(".accfile").text(""); //清除附件名称 dd.find(".itemBox textarea").focusout(); //触发简答题答题事件 }); }); }); }); } /*答题时的事件处理*/ function quesEvent() { //单选题的事件 $("#pagerArea dl[type=1]").find(".ansItem, .ansBtn").click(function () { $(this).parents("dd[qid]").find(".ansItem, .ansBtn").removeClass("type1Over").removeClass("seleted"); //答案id var ansid = $(this).attr("ansid"); $(this).parents("dd[qid]").find(".ansItem[ansid=" + ansid + "]").addClass("type1Over"); $(this).parents("dd[qid]").find(".ansBtn[ansid=" + ansid + "]").addClass("seleted"); //试题id var dd = $(this).parents("dd[qid]"); var qid = dd.attr("qid"); //操作答题卡 var box = $("#cardBox dd[qid=" + qid + "]"); box.attr("ans", $(this).attr("ansid")); dd.find(".btnBox .sure1").click(); //计算完成的题数 $("#CompleteNumber").text($("#cardBox dd[class]").size()); submitResult(1); }); //多选题的事件 $("#pagerArea dl[type=2]").find(".ansItem, .ansBtn").click(function () { var ansid = $(this).attr("ansid"); //答案id var dd = $(this).parents("dd[qid]"); //试题的html元素对象 dd.find(".ansItem[ansid=" + ansid + "]").toggleClass("type1Over"); dd.find(".ansBtn[ansid=" + ansid + "]").toggleClass("seleted"); //确定的答题 var ansid = ""; dd.find(".type1Over").each(function () { ansid += $(this).attr("ansid") + ","; }); //操作答题卡 var box = $("#cardBox dd[qid=" + dd.attr("qid") + "]"); box.attr("ans", ansid); if (ansid.indexOf(",") > -1 && ansid.split(",").length > 2) { dd.find(".btnBox .sure1").click(); } else { box.removeAttr("class"); } //计算完成的题数 $("#CompleteNumber").text($("#cardBox dd[class]").size()); submitResult(1); }); //判断 $("#pagerArea dl[type=3] .ansBtn").click(function () { $(this).parent().find(".seleted[ansid!=" + $(this).attr("ansid") + "]").removeClass("seleted"); $(this).toggleClass("seleted"); var dd = $(this).parents("dd[qid]"); var qid = dd.attr("qid"); //操作答题卡 var box = $("#cardBox dd[qid=" + qid + "]"); if ($(this).parent().find(".seleted").size() > 0) { box.attr("ans", $(this).attr("ansid")); dd.find(".btnBox .sure1").click(); } else { box.removeAttr("ans").removeAttr("class"); } //计算完成的题数 $("#CompleteNumber").text($("#cardBox dd[class]").size()); submitResult(1); }); //简答 $("#pagerArea dl[type=4] dd .itemBox textarea").focusout(function () { var dd = $(this).parents("dd[qid]"); var qid = dd.attr("qid"); var ansid = $.trim($(this).val()); //答案 var file= $.trim(dd.find(".accfile").text()); //上传的附件 //操作答题卡 var box = $("#cardBox dd[qid=" + qid + "]"); if (ansid.length > 0 || file!="") { box.attr("ans", ansid).attr("file", file); dd.find(".btnBox .sure1").click(); } else { box.removeAttr("ans").removeAttr("file").removeAttr("class"); } //计算完成的题数 $("#CompleteNumber").text($("#cardBox dd[class]").size()); submitResult(1); }); //填空 $("#pagerArea dl[type=5] dd .itemBox .textbox").focusout(function () { var dd = $(this).parents("dd[qid]"); var qid = dd.attr("qid"); var ansid = ""; dd.find(".textbox[value!='']").each(function () { ansid += $(this).val() + ","; }); //操作答题卡 var box = $("#cardBox dd[qid=" + qid + "]"); if (ansid.indexOf(",") > -1) { box.attr("ans", ansid); dd.find(".btnBox .sure1").click(); } else { box.removeAttr("ans").removeAttr("class"); } //计算完成的题数 $("#CompleteNumber").text($("#cardBox dd[class]").size()); submitResult(1); }); //把握度的按钮 $("#pagerArea .btnBox .btn").click(function () { var qid = $(this).parent().attr("qid"); //试题id var level = $(this).attr("level"); //把握试等级 var type=$(this).parents("dl").attr("type"); //试题类型 //操作答题卡 var dd = $("#cardBox dd[qid=" + qid + "]"); if (dd.attr("ans") != null || dd.attr("file") != null ) { dd.attr("class", "level" + level); if (level == 1) dd.attr("title", "该题非常有把握"); if (level == 2) dd.attr("title", "对该题没有把握,请回顾"); if (level == 3) dd.attr("title", "该题完全靠蒙,祝你好运!"); } else { alert("该题还没有做!"); } }); } /* 试卷的提交 */ //提交答题信息 function submitResult(patter) { //如果没有试题,则不提交 if ($("#cardBox dl dd").size() < 1) return; //提交 var xml = encodeURIComponent(getResultXml(patter)); var urlPath = "/ajax/InResult.ashx?timestamp=" + new Date().getTime(); if (patter == 1){ $.storage("exam_"+examID,xml); } $.ajax({ type: "POST", url: urlPath, dataType: "text", data: { result: xml }, //开始,进行预载 beforeSend: function (XMLHttpRequest, textStatus) { if (patter == 1) Mask.InResult(); if (patter == 2) Mask.Submit(); }, //加载出错 error: function (XMLHttpRequest, textStatus, errorThrown) { //alert(textStatus); }, //加载成功! success: function (data) { if (Number(data) == 0) alert("考试已经结束,不能提交试卷!"); if (patter == 1) Mask.InResultClose(); if (patter == 2) location.replace(location.href); } }); } //获取答题信息 //patter:提交方式,1为自动提交,2为交卷 function getResultXml(patter) { var box = $("#cardBox"); var res = ""; res += ""; box.find("dl").each(function () { res += ""; $(this).find("dd").each(function () { var type = Number($(this).parent().attr("type")); var ans = $(this).attr("ans") ? $(this).attr("ans") : ""; if (type == 1 || type == 2 || type == 3) { res += ""; } if (type == 4 || type == 5) { res += ""; res += "" res += ""; } }); res += ""; }); res += ""; return res; } /* 加载已经做好的答题信息,用于考试中断电异常; 实现断电不丢答题信息 */ function getResult() { //var result=$("#result").text(); // if(result!=""){ // var result = eval("(" + result + ")"); // setResultState(result); // submitResult(1); // Mask.LoadingClose(); // return; // } var urlPath = "/ajax/GetResult.ashx?timestamp=" + new Date().getTime(); $.ajax({ type: "GET", url: urlPath, dataType: "text", data: { examid: examID, tpid: testPagerID, stid: stid }, //开始,进行预载 beforeSend: function (XMLHttpRequest, textStatus) { Mask.Loading(); }, //加载出错 error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); alert("错误:由于网络原因,没有获取之前的答题信息"); }, //加载成功! success: function (data) { if (data != "0") { var result = eval("(" + data + ")"); setResultState(result); } submitResult(1); Mask.LoadingClose(); } }); } //设置答题的状态 function setResultState(result) { var ques = result.ques; for (var tm in ques) { var q = ques[tm]; var dd = $("#cardBox dd[qid=" + q.id + "]"); if (q.cls != "undefined") dd.addClass(q.cls); if (q.ans != "") dd.attr("ans", q.ans); if (q.type == 1) { var dd = $("#pagerArea dl dd[qid=" + q.id + "]"); dd.find(".itemBox div[ansid=" + q.ans + "]").addClass("type1Over"); dd.find(".itemBtnBox div[ansid=" + q.ans + "]").addClass("seleted"); } if (q.type == 2) { var dd = $("#pagerArea dl dd[qid=" + q.id + "]"); var arr = q.ans.split(","); for (var tm in arr) { dd.find(".ansItem[ansid=" + arr[tm] + "]").addClass("type1Over"); dd.find(".itemBtnBox div[ansid=" + arr[tm] + "]").addClass("seleted"); } } if (q.type == 3) { $("#pagerArea dl dd[qid=" + q.id + "] .ansBtn[ansid=" + q.ans + "]").addClass("seleted"); } if (q.type == 4) { $("#pagerArea dl dd[qid=" + q.id + "] textarea").val(q.ans).attr("file", q.file); } if (q.type == 5) { var arr = q.ans.split(","); $("#pagerArea dl dd[qid=" + q.id + "] .textbox").each(function (index) { $(this).val(arr[index]); }); } } //计算完成的题数 $("#CompleteNumber").text($("#cardBox dd[class]").size()); }