Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Разработать страницу для автоматического подсчета успеваемости студента (https://javascript.ru/forum/dom-window/33133-razrabotat-stranicu-dlya-avtomaticheskogo-podscheta-uspevaemosti-studenta.html)

sur_oviy 11.11.2012 19:01

Разработать страницу для автоматического подсчета успеваемости студента
 
В колонке «Оценка» должны находиться поля ввода.
В строках «СУММА» и «СРЕДНЯЯ ОЦЕНКА» должны находиться вычисляемые поля. Их значения должны автоматически вычисляться при вводе любой оценки.
Ниже таблицы следует разместить сообщение об ошибке для случая, если вместо оценки будет введено недопустимое значение, например, текст или число вне диапазона от 2 до 5.
Функция, будет вызываться в ответ на событие onkeypress от каждого поля ввода оценки. Функция должна просматривать все поля, и суммировать оценки. Каждое введенное значение должно проверяться на попадание в диапазон допустимых значений 2, 3, 4 и 5.
В случае несовпадения, значение должно пропускаться, и выдаваться сообщение об ошибке.
<script language="text/javascript">
	function summ() {
		var a=document.getElementById('o1').value;
		var b=document.getElementById('o2').value;
		var c=document.getElementById('o3').value;
		var d=document.getElementById('o4').value;
		var e=document.getElementById('o5').value;
		var f=document.getElementById('o6').value;
		var s=(a+b+c+d+e+f);
		res.value=s;
	}

<body>
<div align="center"><h1>Анкета успеваемости студента</h1></div>
	<form name="form1">
		<table align="center" border="2px">
			<tr><td align="center">Дисциплина</td><td align="center">Оценка</td></tr>
			<tr><td>Математика</td><td><input type="text" size="10" maxlength="1" id="o1" onKeyPress="summ()"></td></tr>
			<tr><td>Информатика</td><td><input type="text" size="10" maxlength="1" id="o2" onKeyPress="summ()"></td></tr>
			<tr><td>Физика</td><td><input type="text" size="10" maxlength="1" id="o3" onKeyPress="summ()"></td></tr>
			<tr><td>История</td><td><input type="text" size="10" maxlength="1" id="o4" onKeyPress="summ()"></td></tr>
			<tr><td>Русский язык</td><td><input type="text" size="10" maxlength="1" id="o5" onKeyPress="summ()"></td></tr>
			<tr><td>Физкультура</td><td><input type="text" size="10" maxlength="1" id="o6" onKeyPress="summ()"></td></tr>
			<tr><td>Сумма</td><td><input type="text" size="10" name="res" id="res" onKeyPress="summ()"></td></tr>
			<tr><td>Средняя оценка</td><td><input type="text" size="10" name="sr" id="sr" onKeyPress="summ()"></td></tr>
		</table>
	</form>
</body>
</html>


Я правда слаб в Яве, но надеюсь на помощь)

`p r o x y 12.11.2012 12:51

sur_oviy,
Вы ошиблись разделом. Вам сюда.

lord2kim 12.11.2012 14:36

sur_oviy,
<html>
<head>
<script language="javascript">
var d = document;

function summ() {
	var len = d.getElementsByName("rating"), el, er = 0, sum = 0;
	d.getElementById("error").innerHTML = ""; d.getElementById("res").value = ""; d.getElementById("sr").value = "";
	for (i = 0; i < len.length; i++) {
		el = Number(len[i].value);
		if (isNaN(el) || el == "" || (el < 2 || el > 5)) {
			d.getElementById("error").innerHTML = "Оценка №"+(i+1)+" не является числом или не попадает в диапазон от 2 до 5!"; er = 1; break;
		}
		else {
			sum += el;
		}
	}
	if (er == 1) { return false; }
	d.getElementById("res").value = sum;
	d.getElementById("sr").value = Math.round(sum/len.length);
}
</script>
</head>
<body>
<h1 align="center">Анкета успеваемости студента</h1>
    <form name="form1">
        <table align="center" border="2px">
            <tr><th>#</th><th>Дисциплина</th><th>Оценка</th></tr>
            <tr><td>1</td><td>Математика</td><td><input type="text" size="10" maxlength="1" name="rating" onkeyup="summ()"></td></tr>
            <tr><td>2</td><td>Информатика</td><td><input type="text" size="10" maxlength="1" name="rating" onkeyup="summ()"></td></tr>
            <tr><td>3</td><td>Физика</td><td><input type="text" size="10" maxlength="1" name="rating" onkeyup="summ()"></td></tr>
            <tr><td>4</td><td>История</td><td><input type="text" size="10" maxlength="1" name="rating" onkeyup="summ()"></td></tr>
            <tr><td>5</td><td>Русский язык</td><td><input type="text" size="10" maxlength="1" name="rating" onkeyup="summ()"></td></tr>
            <tr><td>6</td><td>Физкультура</td><td><input type="text" size="10" maxlength="1" name="rating" onkeyup="summ()"></td></tr>
            <tr><td>&nbsp;</td><td>Сумма</td><td><input type="text" size="10" id="res"></td></tr>
            <tr><td>&nbsp;</td><td>Средняя оценка</td><td><input type="text" size="10" id="sr"></td></tr>
        </table><br>
		<span id="error" style="color: red; width: 100%; text-align: center;"></span>
    </form>
</body>
</html>

sur_oviy 13.11.2012 20:00

Спасибо большое за помощь!


Часовой пояс GMT +3, время: 08:29.