97 lines
3.1 KiB
JavaScript
97 lines
3.1 KiB
JavaScript
$(function () {
|
||
_clacNumber();
|
||
//提示信息
|
||
$("input[name$=btnEnter]").click(function () {
|
||
if (!_veriCount()) {
|
||
alert("请填写试题数量,即该有多少道题。");
|
||
return false;
|
||
}
|
||
if (!_veriPer()) {
|
||
alert("各题型所占总分的比例,合计必须等于100%。");
|
||
return false;
|
||
}
|
||
var isNull = false;
|
||
$("input[name$=Count]").each(function () {
|
||
var num = $(this).val() == null ? 0 : Number($(this).val());
|
||
var p = $(this).parent().find("input[name$=Score]");
|
||
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;
|
||
_clacNumber();
|
||
});
|
||
$("input[name$=Score]").change(function () { _clacNumber(); });
|
||
$("input[name$=tbTotal]").change(function () {
|
||
var num = Number($(this).val());
|
||
num = Math.floor(num * 0.6);
|
||
$("input[name$=tbPassScore_]").val(num);
|
||
_clacNumber();
|
||
});
|
||
});
|
||
|
||
//计算验证:是否设置有题
|
||
function _veriCount() {
|
||
//选中了多道题
|
||
var count = 0;
|
||
$("input[name$=Count]").each(function () {
|
||
var num = $(this).val() == null ? 0 : Number($(this).val());
|
||
count += num;
|
||
});
|
||
return count > 0;
|
||
}
|
||
//计算验证:各题型百分比是否正确
|
||
function _veriPer() {
|
||
//选中了多道题
|
||
var count = 0;
|
||
$("input[name$=Score]").each(function () {
|
||
var num = $(this).val() == null ? 0 : Number($(this).val());
|
||
count += num;
|
||
});
|
||
return count == 100;
|
||
}
|
||
//计算验证:未设置题数,则不要设置比例
|
||
function _veriNull() {
|
||
//选中了多道题
|
||
var count = 0;
|
||
$("input[name$=Count]").each(function () {
|
||
var num = $(this).val() == null ? 0 : Number($(this).val());
|
||
if (num == 0) {
|
||
var tit = $(this).parent().prev().text();
|
||
alert(tit);
|
||
}
|
||
});
|
||
return count == 100;
|
||
}
|
||
//计算各分数
|
||
function _clacNumber() {
|
||
//总分
|
||
var total = Number($("input[name$=tbTotal]").val());
|
||
//各类题型的百分比输入框
|
||
var score = new Array();
|
||
$("input[name$=Score]").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);
|
||
}
|
||
} |