js封装用户选项传递给Servlet之考试系统二

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>微冷的雨考试成绩统计系统</title>
    <style type="text/css">

      body{
      font-size:30px;
      background:#DAE4F6;
      font-family:"楷体";
      }

       #container{
        margin:0px auto;
       }

       #box{
          /* border:1px solid red; */
          overflow:hidden;
        margin:0px auto;
       }

       #box label{
       margin-top:5px;
       background:#B0E0E6;
        width:80px;
        display:inline-block;
        text-align:right;
        margin-left:50px;
       }
    </style>
    <script type="text/javascript">
    //获取用户已经做了的题目
     //获取所有的复选框
     var data=new Array();
      function selectCheckBox(){
       //定义一个字典保存题目编号和用户填写的答案

      /*   data.push=function(o){
            //如果o是object
            if(typeof(o)==‘object‘) for(var p in o) this[p]=o[p];
        }; */

       // data.push({2:"A"});
         //alert(data.a)
        var selectnum = 0;
          var mycheckboxs = document.getElementsByTagName("input");//获取所有的input标签对象
        var checkboxArray = [];//初始化空数组,用来存放checkbox对象。
        for(var i=0;i<mycheckboxs.length;i++){
          var obj = mycheckboxs[i];
          if(obj.type==‘checkbox‘){
             checkboxArray.push(obj);
          }
        }
        for(var i=0;i<checkboxArray.length;i++){
           if(checkboxArray[i].checked){
              //选择了某个复选框
               selectnum++;
               //复选框提交的文本
               var tidAndAnswer=checkboxArray[i].value;
               var myarray=tidAndAnswer.split(":");
                //题目
               var tid = parseInt(myarray[1]);
                //答案
               var useranswer = myarray[0];
               var flag=false;
               data[0] = "";
               //看题目编号是否已经被记录
               for ( var item in data) {
                   if(item!=0){
                      if(item==tid){
                         data[item]=data[item]+useranswer;
                         flag=true;
                         break;
                      }
                   }
               }
               if(flag==false){
                  //data.push({tid:useranswer});
                  data[tid]=tid+":"+useranswer;
               }

           }
        }

        //
        if (selectnum==0){
            alert(‘请至少做一道题目‘);
            return false;
        }else{
          return true;
        }
        //
       }
       //表单校验

       function checkName(){
         var txtName=document.getElementById("txtName");
         if(txtName.value==""||txtName.value==null){
            alert(‘请输入姓名‘);
            return false;
         }
         return true;
       }

       //加载完所有的标签,图片和css后执行
        window.onload=function(){

        var myform=document.getElementById("form1");
        var mydata=document.getElementById("selectData");
            myform.onsubmit=function(){
             var mycount=0;
            if(!checkName()){
               mycount--;
            }else{
              if(!selectCheckBox()){
               mycount--;
               }
            }

            if(mycount==0){
            //var str = JSON.stringify(data);
            //alert(str);
               mydata.value=data;
               return true;
            }else{
              return false;
            }

       };

          var row=15;
          var col=2;
         var mybody=document.getElementById(‘mybody‘);
         if(col>4){
           mybody.style.width=document.body.scrollWidth+(col-4)*350;
         }

         //mybody.style.width="3333px";
          initOptions(row,col);
          //alert(body.documentElement.clientWidth);
        // document.body.scrollWidth=3333;
          var cbxs=document.getElementsByName("rchoice");
          for ( var i = 0; i < cbxs.length; i++) {
             cbxs[i].style.cssText="margin-left:20px;";
          }
        };
        //动态加载答题区控件!
        function initOptions(row,column){
           var box=document.getElementById(‘box‘);
           //题目编号,从0开始
            var count = 0;
            var mytag; //CheckBox的Tag属性值
           //
            for (var i = 1; i <=row ; i++){  //默认i的值为15
                count++;
                 var mydiv=document.createElement("div");
                  box.appendChild(mydiv);
                  //mydiv.style.border="1px solid blue";
                  // mydiv.style.paddingRight="700px";
                   mydiv.style.overflow="auto";
                for (var j = 1; j <=column; j++){   //默认j的值为2
                     //创建一个label
                    var label=document.createElement(‘label‘);

                      //设置座位号
                    if (j == 1)
                    {
                        label.innerHTML = count+ "题";
                         mytag = count;
                    }
                    else
                    {
                        //多列的情况下创建题目编号的方式
                        label.innerHTML = (count +row*(j-1)) + "题";
                        mytag = count + row*(j-1);
                    }
                    var littlediv=document.createElement("div");
                    littlediv.style.float="left";

                    //littlediv.style.border="3px solid blue";
                    mydiv.appendChild(littlediv);
                    littlediv.appendChild(label);
                    //创建四个选项
                    var checkbox1=document.createElement("input");
                    checkbox1.setAttribute("type","checkbox");
                    checkbox1.setAttribute("value","A:"+mytag);
                    checkbox1.setAttribute("name","rchoice");
                    var cbtxt=document.createTextNode("A");
                    littlediv.appendChild(checkbox1);
                    littlediv.appendChild(cbtxt);

                    //第二个checkbox
                      var checkbox2=document.createElement("input");
                    checkbox2.setAttribute("type","checkbox");
                    checkbox2.setAttribute("value","B:"+mytag);
                    checkbox2.setAttribute("name","rchoice");
                    var cbtxt2=document.createTextNode("B");
                    littlediv.appendChild(checkbox2);
                    littlediv.appendChild(cbtxt2);
                    //第三个checkbox
                      var checkbox3=document.createElement("input");
                    checkbox3.setAttribute("type","checkbox");
                    checkbox3.setAttribute("value","C:"+mytag);
                    checkbox3.setAttribute("name","rchoice");
                    var cbtxt3=document.createTextNode("C");
                    littlediv.appendChild(checkbox3);
                    littlediv.appendChild(cbtxt3);

                     //第四个checkbox
                      var checkbox4=document.createElement("input");
                    checkbox4.setAttribute("type","checkbox");
                    checkbox4.setAttribute("value","D:"+mytag);
                    checkbox4.setAttribute("name","rchoice");
                    var cbtxt4=document.createTextNode("D");

                    littlediv.appendChild(checkbox4);
                    littlediv.appendChild(cbtxt4);
                    var myline=document.createElement("br");

                    if(j==column){
                        mydiv.appendChild(myline);
                    }
              }
           }

        }

    </script>
  </head>

  <body id="mybody">
     <div id="container">
      <div id="box">

              </div>
        <form action="${pageContext.request.contextPath}/SaveServlet?action=save" method="post" id="form1">

             <!-- <fieldset>
              <legend>答题区 :本软件由微冷的雨出品!如有问题,请发送反馈信息到:[email protected]</legend> -->

             <div id="tool">
                   <label for="txtRow" >行:</label><input id="txtRow" type="text" style="width:50px;"/>
                   <label for="txtColumn" >列:</label><input id="txtColumn" type="text" style="width:50px;"/>
                   <input type="button" value="生成"/>
                   <label for="txtName" >姓名:</label><input id="txtName" name="txtName" type="text"/>
                   <c:if test="${not empty errors && not empty errors[‘txtName‘]}">
                                <span class="error">${errors[‘txtName‘]}</span>
                            </c:if>
                            <c:if test="${empty errors || empty errors[‘txtName‘]}"><span></span></c:if>
                   <input type="submit" value="提交"/>
              </div>
              <input type="hidden" id="selectData" name="selectData" value=""/>
       </form>
         <!-- </fieldset> -->
     </div>
  </body>
</html>
时间: 2024-12-17 16:16:49

js封装用户选项传递给Servlet之考试系统二的相关文章

关于js封装框架类库之DOM操作模块(二)

上一篇基本实现了框架结构,但是与真正能用上的项目框架比较还是存在很多不足,在这又做了些加强与优化 1 (function ( window, undefined ) { 2 3 4 var arr = [], 5 push = arr.push, 6 slice = arr.slice, 7 concat = arr.concat; 8 9 // 构造函数 10 var YY = function YY ( selector ) { 11 return new YY.fn.init( selec

如何获取url中的参数并传递给iframe中的报表

在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数呢?以下用报表软件FineReport简单介绍一些. 具体实现过程 将报表生成页面时,给网页添加onload事件,首先获取url中的参数,然后嫁接到iframe的src上,或者通过获得的参数拼接处完整的报表url赋给iframe的src. <html> <head> <title

Demo_张仕传_结构体考试-modify

/* 题目: //声明一个结构体类型 struct _AdvTeacher { char *name; char *tile; int age; char *addr; char *p1; //系统预留成员域 char **p2;//系统预留成员域 }; 要求定义一个结构体数组(6个元素),要求从键盘输入数据,并按照名称大小进行排序:打印输出. 1. 打印结构体数组,需要单独封装成函数:10 2. 排序结构体数组,需要单独封装成函数(按照名称进行排序):50 3. main函数中编写业务测试模型

用jQuery基于原生js封装的轮播

我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址的数组,图片宽度,上一页,下一页的id,图片列表即ul的id(这儿使用无序列表排列的图片),自动轮播间隔的时间.功能:实现了轮播的自动轮播,可以点击上一页,下一页进行切换. 下面是html中的代码,只需要把存放的容器写好,引入jquery即可: <!DOCTYPE html><html>

JS图片上传预览插件制作(兼容到IE6)

其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方法. 了解了一下,其实方法都是大同小异的.大概有以下几种方式: ①订阅input[type=file]元素的onchange事件. 一旦选择的路径被改变就把图片上传至服务器,然后就返回图片在服务器端的地址,并且赋值到img元素上. 缺点:工作量大,有些上传并不是用户最终需要上传的图片,但是这种方式会

原生JS封装Ajax插件(同域&amp;&amp;jsonp跨域)

抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正确的地方,还望指正^_^ 一.Ajax核心,创建XHR对象 Ajax技术的核心是XMLHttpRequest对象(简称XHR),IE5是第一款引入XHR对象的浏览器,而IE5中的XHR对象是通过MSXML库中的一个ActiveX对象实现的,因此在IE中可能有3个版本,即MSXML2.XMLHttp.

JS封装cookie操作函数实例(设置、读取、删除)

本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 /*设置cookie*/ function setCookie(name, value, iDay) {   var oDate=new Date();   oDate.setDate(oDate.getDate()+iDay);   document.cook

web文件上传一学习记录 (简单的web浏览器可读文件的上传,servlet 文件上传)

文件上传:这里用得时表单上传的方式,表单上传到的时候 method一定指定为POST,enctype="multipart/form-data". 第一种方式,直接上传.读取.显示内容,并没有存储到服务器端. 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.g

文件上传(Servlet/Struts2/SpringMVC)

文件上传 Servlet实现 要实现文件上传的功能,必须在form的表单中的添加 enctype="multipart/form-data" 表示以二进制流的方式将文件传给控制器. 需要导入的jar包有:commons-fileupload-1.2.1.jar.commons-io-1.4.jar 文件上传的步骤: (1)创建DiskFileItemFactory的对象. (2)创建ServletFileUpload的对象,需传入DiskFileItemFactory的对象.可以获得封