Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 24

Посчитать количество radiobutton на странице и проверить отмечены ли они

01.11.2012, 12:47. Показов 2828. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Помогите, пожалуйста, подсчитать на динамически созданной странице количество групп radio-буттонов и перед отправкой формы проверить во всех ли check=true, иначе выдать Предупреждение.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<form name="form1">
<table border="1">
<tr>
<th>Учащиеся</th>
<th>Математика</th>
<th>Физика</th>
</tr>
<tr>
<td>Иванов Иван Иванович</td>
<td>
<input type="radio" name="mat1" value="-1" />не явка</BR>
<input type="radio" name="mat1" value="0" />не сдал</br>
<input type="radio" name="mat1" value="1" />сдал</br>
</td>
<td>
<input type="radio" name="fiz1" id="fiz1" value="-1" />не явка</BR>
<input type="radio" name="fiz1" id="fiz1" value="0" />не сдал</br>
<input type="radio" name="fiz1" id="fiz1" value="1" />сдал</br>
</td>
</tr>
<tr>
<td>Петров Петр Петрович</td>
<td>
<input type="radio" name="mat2" value="-1" />не явка</br>
<input type="radio" name="mat2" value="0" />не сдал</br>
<input type="radio" name="mat2" value="1" />сдал</br>
</td>
<td>
<input type="radio" name="fiz2" id="fiz2" value="-1" />не явка</BR>
<input type="radio" name="fiz2" id="fiz2" value="0" />не сдал</br>
<input type="radio" name="fiz2" id="fiz2" value="1" />сдал</br></div>
</td>
</tr>
</table>
<p>
<input type = 'submit' name = 'sub1' value = 'Сохранить'/> 
</p>
</form>
Дело в том, что количество Учащихся каждый раз разное и соответственно name у radio может быть mat1, mat2 ... matN или fiz1, fiz2 ... fizN для второго экзамена. Не могу в функции JavaScript обратиться к этим именам и не могу понять как правильно сделать проверку

JavaScript
1
2
3
4
5
6
7
8
9
10
11
form1.mat1[0].checked=false
form1.mat1[1].checked=false
form1.mat1[2].checked=false
 
form1.mat2[0].checked=false
form1.mat2[1].checked=false
form1.mat2[2].checked=false
 
form1.matN[0].checked=false
form1.matN[1].checked=false
form1.matN[2].checked=false
и еще при выдаче сообщения, если, например,

JavaScript
1
2
3
form1.mat1[0].checked=false
form1.mat1[1].checked=false
form1.mat1[2].checked=false
нужно написать что не проставлен Результат по Математике у Иванова. Не пойму как в JS привязать к определенному radio соответствующего ему Учащегося.

Заранее всем спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.11.2012, 12:47
Ответы с готовыми решениями:

Посчитать количество RadioButton
Добрый вечер! У меня есть программка для тестов, как при помощи кнопки &quot;Завершить тест&quot;, посчитать количество правильных ответов и не...

Как проверить отмечены ли в div чекбоксы?
Всем привет! Подскажите пожалуйста, как проверить отмечены ли в div чекбоксы? &lt;div class=&quot;panel1&quot;&gt; &lt;input...

Как проверить отмечены ли все radio в тесте?
Уже вынес себе весь мозг, решил, что пора обратиться к специалистам за подсказкой. Создаю тест формата: Вопрос 1: Ответ 1 Ответ...

2
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
01.11.2012, 15:06
Lasst uns diskutieren!

1. у всякой таблицы имеется коллекция строк rows, коя нумеруется сверху вниз, начиная с нулевой

2. у всякой строки таблицы имеется коллекция ячеек этой строки cells, коя нумеруется слева направо, начиная с нулевой

3. у каждой из ячеек таблицы можно прочитать её свойство cellIndex - это будет её номер в коллекции cells

4. родительский элемент для каждой ячейки (тега <td>) - это строка (тег <tr>)

5. у всякой строки таблицы можно прочитать свойство rowIndex - и это будет номер строки в коллекции rows
-------
таким образом, каждую из ячеек вашей таблицы можно однозначно идентифицировать по номеру сроки и номеру столбца (именно вашей - где нет rowspan'ов и colspan'ов, которые этот чёткий порядок немного нарушают)
------

6. учебные предметы находятся у вас, начиная с первого по номеру столбца (не забываем, что в javascript'е всё [кроме размера моего вознаграждения] начинается с нуля):
в столбце номер один - математика
в столбце номер два - физика
в третьем столбце может быть химия
и т.д.
в пятом номере, например, может быть предмет "любовь к Путину" (у вас такого еще нет?... хотя что это я? очевидно же, что когда введут - этот предмет будет самым первым, впереди даже математики)
-----
видим, что значение атрибута name группы кнопок в одной ячейке может быть и не связано с предметом - зная номер столбца, можно прочитать, например, id в ячейке нулевой строки - и будем знать, что это "Математика" -- <th id="math">Математика</th>

таким образом, в каждой ячейке должна быть группа с уникальным для страницы name - но какой угодно, ферштейн? [раз вы согласились дискуТировать по-немецки]
-----

7. в каждой ячейке у вас три <input>'а в строгой последовательности сверху вниз - "неявка", "сдал", "не сдал" [в скобках с грустью отмечу, что для работника учебного заведения писать слово "неявка" раздельно - оно непростительно]
-----
таким образом прописывать в HTML-коде однотипные value для каждой радиокнопки совершенно НЕ НАДО - мы и так их однозначно узнаем по их местоположению в ячейке и потом, в процессе перебора скриптом их и назначим [замечаете, как я старательно облегчаю вашу жизнь?]
------

8. радиокнопки для Иванова И.И. по всем предметам, включая и будущий предмет "Liebe für Putin" [это я опять по-немецки] в строке номер один
и сама фамилия Иванова - в той же по номеру строке!
так что беспокоящая вас "связь" между имяреком и его результатами - она проста и очевидна

9. и ещё я бы посоветовал вам каждую радиокнопку вместе с текстом к ней заключать в тег <label> - это удобно - кликать мышей можно будет тогда не только точно в кружочек, а и на сам текст;
с учётом всего вышесказанного оформление любой одной ячейки может быть таким:
HTML5
1
2
3
4
5
<td>
<label><input type="radio" name="p2" /> неявка</label>
<label><input type="radio" name="p2" />не сдал</label>
<label><input type="radio" name="p2" />   сдал</label>
</td>
разумеется, в блоке стилей надо будет прописать правило label {display: block}
и тогда вам не нужны будут теги <br /> [тем паче, что вы этих тегов не знаете, правильно написать их не умеете - посмотрите, что вы с ними сделали?]

буквочка p в атрибутах name мною выбрана произвольно - как я уже писал выше - идентифицировать надо всего одну ячейку столбца предмета - самую верхнюю
понятно, что если вам надо иметь точное имя, связанное с предметом, для обработки на сервере - пишите то, что посчитаете нужным
[хотя лично я бы не стал, ибо есть способ лучше - можно вообще не использовать атрибут name у радиокнопки, но сделать каждые три в ячейке именно группой]
=======

ну вот, с теорией закончил
теперь дело за алгоритмом:
а) перебираем циклом коллекцию строк rows, начиная с первой (где Иванов и его успеваемость) и до любого количества учеников

б) внутрь первого цикла вкладываем второй - уже по столбцам (ФИО, затем любое количество предметов, включая и Love for Putin [сорри, это я на англо-дискуССию сбился, Meine Güte])

в) в каждой ячейке просматриваем коллекцию getElementsByTagName ('INPUT'), коя вернёт нам три радиокнопки именно в том порядке, в котором они и прописаны

г) проверяем отмеченность хотя бы одной в группе, прописывая параллельно value [зачем-то вам нужные; ну да - как без них-то, если по старинке работать?]

д) ежели ни одну не отметили, помечаем ячейку кровью [красным цветом фона] и шагаем по циклам далее

е) закончив оба цикла - либо тихо уходим на сервер с подготовленными и проверенными данными, либо - если в таблице пролилась кровь - радостно вопим alert'ом - "Исправь немедленно, негодник(-ца)! А то хуже будет!!!"

ж) провинившийся "замывает" кровь на странице -- скрипт отслеживает его действия; по окончании опять alert'ом пишем "Ага!!! Испугался?! А я пошутил - ничего бы тебе и не было..." - и ползём на сервер
======

ну что, сами справитесь?
если не справитесь - выкладывайте новый HTML-код с теми моими предложениями по изменению, кои вы сочтёте вам подходящими [И попробуйте только все их не принять! Хуже будет...] - набросаю вам скриптик
1
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 24
01.11.2012, 15:09  [ТС]
Спасибо огромное, сейчас буду разбираться !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2012, 15:09
Помогаю со студенческими работами здесь

Посчитать количество ссылок на странице
Подскажите, пожалуйста, как сделать, чтобы количество ссылок выводилось в поле для ввода при нажатии кнопки? Пока есть вот что ...

Посчитать количество тегов на странице сайта
Как можно быстро и удобно посчитать количество тегов на странице сайта(как всех вообще, так и каждый вид тега по отдельности)? А вообще...

Посчитать количество латинских букв на странице текста
как посчитать число латинских букв на странице текста

Посчитать количество таких чисел в массиве, что они строго больше, чем все следующие за ними
Посчитать количество таких чисел в массиве, что они строго больше, чем все, следующие за ними. ВХОДНЫЕ ДАННЫЕ В первой строке дано...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru