Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.01.2014, 20:58
Новичок на форуме
Отправить личное сообщение для Kirill2018 Посмотреть профиль Найти все сообщения от Kirill2018
 
Регистрация: 23.01.2014
Сообщений: 4

Я нуб, нужна помощь
Вот условие задачи:
Разработать страницу для автоматического подсчета успеваемости студента
В колонке «Оценка» должны находиться поля ввода. В строках
«СУММА» и «СРЕДНЯЯ ОЦЕНКА» должны находиться вычисляемые поля.
Их значения должны автоматически вычисляться при вводе любой оценки.
Ниже таблицы следует разместить сообщение об ошибке для случая, если
вместо оценки будет введено недопустимое значение, например, текст или
число вне диапазона от 2 до 5.
Вот часть скрипта
if (isNaN(el) || el == "" || (el < 2 || el > 5)) {
d.getElementById("error").innerHTML = "Оценка №"+(i+1)+" не является числом или не попадает в диапазон от 2 до 5!"; er = 1; break;
}
Объясните почему если ввожу значение входящие в этот диапазон выскакивает сообщение об ошибке.
Ответить с цитированием
  #2 (permalink)  
Старый 23.01.2014, 21:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Kirill2018,
как у вас el формируется?
Ответить с цитированием
  #3 (permalink)  
Старый 23.01.2014, 22:52
Новичок на форуме
Отправить личное сообщение для Kirill2018 Посмотреть профиль Найти все сообщения от Kirill2018
 
Регистрация: 23.01.2014
Сообщений: 4

Короче вот полный скрипт
<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>
Ответить с цитированием
  #4 (permalink)  
Старый 23.01.2014, 23:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Kirill2018,
до кучи и html можно)))
Ответить с цитированием
  #5 (permalink)  
Старый 24.01.2014, 00:38
Новичок на форуме
Отправить личное сообщение для Kirill2018 Посмотреть профиль Найти все сообщения от Kirill2018
 
Регистрация: 23.01.2014
Сообщений: 4

Вот вообщем так выглядит исходный код этой страницы
<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>
Ответить с цитированием
  #6 (permalink)  
Старый 24.01.2014, 00:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Kirill2018,
Всё нормально работает у вас только вы непредусмотрели что данные не во все ячейки сразу попадают
Ответить с цитированием
  #7 (permalink)  
Старый 24.01.2014, 01:23
Новичок на форуме
Отправить личное сообщение для Kirill2018 Посмотреть профиль Найти все сообщения от Kirill2018
 
Регистрация: 23.01.2014
Сообщений: 4

Ага понятно.Большое спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 23:33
Нужна помощь: Slider wheel Alex555 Мобильный JavaScript 0 15.05.2013 18:06
Нужна помощь по слайдеру seoguru Работа 3 28.01.2013 22:02
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17
Я - нуб. Нужна помощь :) AMARIAL Internet Explorer 27 28.04.2009 21:23