Я нуб, нужна помощь
Вот условие задачи:
Разработать страницу для автоматического подсчета успеваемости студента В колонке «Оценка» должны находиться поля ввода. В строках «СУММА» и «СРЕДНЯЯ ОЦЕНКА» должны находиться вычисляемые поля. Их значения должны автоматически вычисляться при вводе любой оценки. Ниже таблицы следует разместить сообщение об ошибке для случая, если вместо оценки будет введено недопустимое значение, например, текст или число вне диапазона от 2 до 5. Вот часть скрипта if (isNaN(el) || el == "" || (el < 2 || el > 5)) { d.getElementById("error").innerHTML = "Оценка №"+(i+1)+" не является числом или не попадает в диапазон от 2 до 5!"; er = 1; break; }Объясните почему если ввожу значение входящие в этот диапазон выскакивает сообщение об ошибке. |
Kirill2018,
как у вас el формируется? |
Короче вот полный скрипт
<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> |
Kirill2018,
до кучи и html можно))) |
Вот вообщем так выглядит исходный код этой страницы
<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> </td><td>Сумма</td><td><input type="text" size="10" id="res"></td></tr> <tr><td> </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> |
Kirill2018,
Всё нормально работает у вас только вы непредусмотрели что данные не во все ячейки сразу попадают |
Ага понятно.Большое спасибо
|
Часовой пояс GMT +3, время: 07:54. |