如何手动录入试题?

本文详细介绍了手动录入试题的全过程,包括创建试题、设定难度、添加选项及答案解析等步骤,旨在帮助教师和管理员高效地构建在线考试题库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发工具与关键技术:Visual  Studio    手动录入 
作者:黎凤焕
撰写时间:2019年5月2日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在学习MVC的时候,都离不开layui的使用,都会引用layui,不是引用layui.js就是引用layui.all.js,但凡引用了layui,往往都会与表格的构建有关,构建表格的时候会用到layui来渲染表格。
学习MVC也有一段时间了,都会使用layui渲染表格,对数据信息进行查询、新增、修改、删除。数据量大的时候,会用到下拉框来查询数据,可以说很多时候的学习时间都与数据查询、新增、修改、删除、分页操作、下拉框数据绑定相接触,都离不开下拉框绑定数据,对数据进行单表查询,多表查询。不知道是什么原因,对这些的学习老是摸不着方便学习的技巧,每当学习到新的表格,感觉很深奥,当听完讲解后,感觉会了,看着代码,感觉与之前学的没什么不同,只不过是变了名称而已,每个表格的查询、新增、修改、删除、分页操作、下拉框数据绑定都是差不多的,代码也是差不多的,看着代码,感觉都讲了好多次了,要是等到自己敲的时候,那感觉就是一个头两个大。就犹如看着试题,感觉都会,等到下笔的时候,却无从下手,看着答案感觉都是学过的知识,或许是没有不断的练习,没有温故而知新才没有下笔如有神体会。
手动录入试题,其实看起来很简单,做起来,也是很简单的,只是我不会,所以感觉一点都不简单,只是没有到熟能生巧的境界,才会觉得这题的难。当不断的练习,摸索其中的奥妙,不断更新自己的知识库,才会有熟能生巧的时候,其实嘛!这道理谁都懂,只是不会去行动,都会受到外界的压力才勉为其难、心不甘、情不愿的去行动起来。手动录入试题,都是与下拉框的数据绑定,数据信息的查询、新增、修改、删除有关,表格的构建离不开查询、新增、修改、删除,而与查询、新增、修改、删除中的知识点的深浅,步骤的多少,结果如何等有关。
手动录入试题与其他表格一样,步骤都是一样的,不就是声明变量,使用layui,绑定下拉框数据信息,对表格进行渲染等。其实,每个表都有与之相同的地方,觉得不同的地方,只是在之前的表格进行了加工而已。
手动录入试题的题目类型切换,首先获取题目类型ID值。如果题目类型ID的值为3,表示该题型为判断题,众所周知,判断题的选项只有2个 :不是对(√)就是错(×),先获取选项的个数,如果选项的个数大于2,就删除多余的选项,并赋值,使用只读模式,不给用户添加选项,如果题目类型ID值为1或者2 说明是单选题或者多选题,当题目类型是单选题或者多选题的时候,取消只读模式,让用户对选项进行添加操作。
$("#TitleType").change(function () {
            var titleTypeID = this.value; --获取题目类型ID值
            var inputs = $("#addOptions").find(".form-row").find("input");
            if (titleTypeID == 3) { //如果题目类型ID的值为3,表示该题型为判断题
                //判断题的选项只有2个 :√或则×
                if (inputs.length > 2) {
                    //获取选项的个数
                    var answers = $("#addOptions").find(".form-row");
                    for (var i = 2; i < answers.length; i++) {
                        $(answers[i]).remove();--删除多余的选项
                    }
                }
                inputs[0].value = "√";--赋值
                inputs[1].value = "×";
                inputs[0].readOnly = true; --只读模式
                inputs[1].readOnly = true;

            } else { //如果题目类型ID值为1或则2 说明是单选题/多选题
                if (inputs[0].value == "√" || inputs[1].value == "×") {
                    inputs[0].value = "";
                    inputs[1].value = "";
                }
                inputs[0].readOnly = false;--取消只读模式
                inputs[1].readOnly = false;
            }
  });

对数据进行判断后,当题目类型不是判断题,是单选题或者多选题的时候,要对题目的答案选项进行编号数组,一般不规定答案选项设置的个数,根据题目的需求进行设置选项的多少。然后添加选项功能,先获取题目类型ID值,判断题目的类型,如果是单选题或者多选题就获取选项个数,当用户添加的选项值大于答案选项编号的值,就提示用户已经是最后一个选项了,不能再添加选项了,还有一种情况,当用户没有选择题目类型的时候,就不可以添加选项,让用户选择题目类型,当题目类型为单选题或者多选题的时候,点击添加选项按钮才可以添加选项。
//答案选项编号数组 
 var ArrLetter = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J");

	  判断题目类型的题型,是否为判断题,如果是判断题,不可以添加选项,也不可以删除选项。如果不是判断题,是单选题或者多选题,就可以添加选项和删除选项,删除的选项删一定要留下两个选项,选择题顾名思义就是要有得选择,所以,当用户删除选项低于两个选项的时候就要提示用户不可以再删除了。
//删除选项
        function DeleteAnswer() {
            //获取选项的长度
            var optionCount = $("#addOptions").find(".form-row").length;
            if (optionCount > 2) {//选项大于2,则可以删除
                $("#addOptions").find(".form-row").last().remove();//找到最后一个选项然后删除
            } else {//必须保留2个选项
                layer.msg("A、B项不能移除!", { icon: 0, skin: "layui-layer-molv" });
            }
        }

当中会学到上传文件图片,点击添加文件的按钮,选中要上传的图片文件,文件上传表单formEditorFile中input[type=file]的onchange事件,ajaxSubmit form表单提交的插件,对文件进行上传,与layui的引用有关。当上传文件成功的时候,弹出提示框,提示用户上传是否成功了。

添加文件 选择需要图片文件
        function openUpEeditorFile() {
            $("#formEditorFile input[type='file']").click();
        }
        function funUpEeditorFile() {
            //文件上传表单formEditorFile中input[type=file]的onchange事件
            $("#formEditorFile").ajaxSubmit(function (data) {
                //ajaxSubmit form表单提交的插件
                if (data.State) {
                    var str = $("#textContent").html();
                    str += data.Text;
                    $("#textContent").html(str);
                } else {
                    layer.msg(data.Text, { icon: 0, skin: "layui-layer-molv" });
                }
            });
        }

上传图片的时候,是要对图片进行压缩。当用户想保存新增试题点击保存按钮的时候,要对用户所要保存的试题进行判断,判断输入信息是否填写完整,如果没有就提示用户要将试题填写完整,如果题目类型为单选题或者多选题,要判断该类型的答案选项是否为空,如果为空,就要提示用户答案选项不可以为空。对答案进行判断,判断有没有填写答案,如果没有,就提示用户,判断答案是否超出题目选项,如果超出选项,进行返回,就提示用户。判断答案是否超出了选项,要获取字符的ASCII编码,当要新增的试题判断已经填写完整并无误后保存,点击保存按钮,判断是否成功,如果不成功,提示用户。在判断题目类型为单选或多选则要判断答案选项是否为空的时候,会用到value和val(),value是js属性获取文本值,val()是jQuery的方法。
    文件上传的过程中,会用到全局唯一标识符(GUID),运用全局唯一标识符(GUID)是为了区分重复的图片,让图片唯一化,在同一时间上传同一张图片也可以对图片进行区分,上传图片是用到正则表达式,正则表达式对图片进行匹配,匹配图片的名称。图片上传时要获取文件类型,创建文件名称,并检查目录是否存在,如果目录不存在就创建目录,然后保存文件的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值