ZhiYeJianKang_PeiXun/Song.Site/Manage/Exam/Scripts/TestPaper_Edit2.js
2025-02-20 15:41:53 +08:00

139 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$(function () {
//提交事件
$("form").submit(function () {
try {
var func = eval("type" + fromtype() + "_verify");
return func();
} catch (e) { }
return true;
});
//当题量填写变动时
$(".ItemForAll input[name$=tbItemCount]").change(function () { type0_clacNumber(); });
//当占分比填写变动时
$(".ItemForAll input[name$=tbItemScore]").change(function () {
var num = Number($(this).val());
num = Math.floor(num * 0.6);
$("input[name$=tbPassScore_]").val(num);
type0_clacNumber();
});
//当更改试题选择范围时
$("input[type=radio][name$=rblFromType]").click(function () {
var val = $(this).val();
$(".ItemForAll").css("display", val == "0" ? "block" : "none");
$(".ItemForOutline").css("display", val == "1" ? "block" : "none");
});
var type = $("input[name$=rblFromType]:checked").val();
$(".ItemForAll").css("display", type == "0" ? "block" : "none");
$(".ItemForOutline").css("display", type == "1" ? "block" : "none");
});
//试题选择范围
//return:返回0为当前课程所有试题返回1为按章节取试题
function fromtype() {
var type = $("input[name$=rblFromType]:checked");
return Number(type.val());
}
/*
选择当前课程所有试题
*/
function type0_verify() {
if (!type0_veriCount()) {
alert("请填写试题数量,即该项取多少道题。");
$(".ItemForAll input[name$=tbItemCount]:first").focus();
return false;
}
var per = type0_veriPer();
if (per!=100) {
alert("各题型所占总分的比例合计必须等于100%,当前是"+per+"%");
$(".ItemForAll input[name$=tbItemScore]:first").focus();
return false;
}
var isNull = false;
$(".ItemForAll input[name$=tbItemCount]").each(function () {
var num = $(this).val() == null ? 0 : Number($(this).val());
var p = $(this).parent().find("input[name$=tbItemScore]");
var per = p.val() == null ? 0 : Number(p.val());
if ((num != 0) ^ (per != 0)) {
isNull = true;
var tit = $.trim($(this).parent().prev().text());
alert(tit + "题数与所占百分比,必须同时填写。");
return false;
}
});
if (isNull) return false;
type0_clacNumber();
return true;
}
//验证是否填写了试题数量
function type0_veriCount() {
//选中了多道题
var count = 0;
$(".ItemForAll input[name$=tbItemCount]").each(function () {
var num = $(this).val() == null ? 0 : Number($(this).val());
count += num;
});
return count > 0;
}
//计算验证:各题型百分比是否正确
function type0_veriPer() {
//选中了多道题
var count = 0;
$(".ItemForAll input[name$=tbItemScore]").each(function () {
var num = $(this).val() == null ? 0 : Number($(this).val());
count += num;
});
return count;
}
//计算各项所占实际分数
function type0_clacNumber() {
//总分
var total = Number($("input[name$=tbTotal]").val());
//各类题型的百分比输入框
var score = new Array();
$(".ItemForAll input[name$=tbItemScore]").each(function () {
if ($.trim($(this).val()).length > 0) {
score.push($(this));
}
$(this).parent().find("input[name$=Number]").val("");
$(this).parent().find("span[id*=Number]").text("0");
});
var tm = total;
for (var i = 0; i < score.length; i++) {
var th = score[i];
var num = 0;
if ((i + 1) != score.length) {
var per = th.val() == null ? 0 : Number(th.val());
num = parseInt(total * per / 100);
tm = tm - num;
} else {
num = tm;
}
th.parent().find("input[name$=Number]").val(num);
th.parent().find("span[id*=Number]").text(num);
}
}
/*
按章节选取试题
*/
function type1_verify() {
var per = type1_veriPer();
if (per!= 100) {
alert("各题型所占总分的比例合计必须等于100%,当前是"+per+"%");
$(".ItemForOutline input[name$=tbQuesScore]:first").focus();
return false;
}
}
//计算验证:各题型百分比是否正确
function type1_veriPer() {
//选中了多道题
var count = 0;
$(".ItemForOutline input[name$=tbQuesScore]").each(function () {
var num = $(this).val() == null ? 0 : Number($(this).val());
count += num;
});
return count;
}