С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 20.03.2018
Сообщений: 51

Как отловить изменение состояния input radio

03.10.2018, 00:00. Показов 7076. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени.
HTML5
1
2
3
4
5
6
7
8
9
10
11
<label>
    <input type="radio" name="radio" id="id1" onchange="radioChecked(this)" />RADIO-1
</label>
 
<label>
    <input type="radio" name="radio" id="id2" onchange="radioChecked(this)" />RADIO-2
</label>
 
<label>
    <input type="radio" name="radio" id="id3" onchange="radioChecked(this)" />RADIO-3
</label>
JavaScript
1
2
3
function radioChecked(e) {
    alert(e.id);
}
При выборе input type="radio" (атрибут checked) скрипт выводит его id.
Как сделать, чтобы function radioChecked(e) вызывалась дважды:
- для input type="radio", который получил checked;
- для input type="radio", потерявшего checked.
Последовательность вызова неважна.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2018, 00:00
Ответы с готовыми решениями:

Изменение value в зависимости от значения <input>radio
Доброго дня! Есть связанные выпадающие списки, при выборе значения которых выдается картинка(извлекаю путь из value), теперь решил сделать...

Как отловить изменение состояния CheckBox в DatagridView
Не могу понять почему не чекает чекбокс... Сделал dataGridView checkbox Cell, но при нажатие на чекбокс, не чего не происходит. Как...

Как отловить изменение состояния CheckBox в DataGridView?
Как отловить изменение состояния CheckBox в DatagridView?

5
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
03.10.2018, 00:27
Цитата Сообщение от Katya2000 Посмотреть сообщение
скрипт выводит его id
Вы тут привели только html, скрипт который выводит id где?
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
03.10.2018, 00:59
Лучший ответ Сообщение было отмечено Katya2000 как решение

Решение

Katya2000, думаю пока рано Вам о мутациях рассказывать, поэтому пока такой вариант - https://codepen.io/qwerty_wasd/pen/OBMyzO

HTML5
1
2
3
  <input type="radio" name="radio-group" checked="checked"/>
  <input type="radio" name="radio-group"/>
  <input type="radio" name="radio-group"/>
JavaScript
1
2
3
4
5
6
7
8
9
// мы просто ловим предыдущий радио в переменную скоупом выше обработчика
let prevRadio=document.getElementsByTagName('input')[0];
[...document.getElementsByTagName('input')].forEach((e,i,arr) => {
  e.addEventListener('click',el=>{
      console.log(`radio ${i+1} стал ${el.target.checked}, а radio ${arr.indexOf(prevRadio)+1} - ${prevRadio.checked}`);
    // и уже здесь мы запоминаем на который кликали
      prevRadio = el.target;
  });
});
Только вот интересно стало - зачем? У Вас радио-группа. То есть чекнув один из них, его свойство checked === true, остальные априори станут false
1
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
03.10.2018, 02:12
Цитата Сообщение от zlojnaxa Посмотреть сообщение
скрипт который выводит id где?
Пардон, спать пора не увидел функцию
0
0 / 0 / 0
Регистрация: 20.03.2018
Сообщений: 51
03.10.2018, 03:01  [ТС]
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Только вот интересно стало - зачем?
Qwerty_Wasd, это вершина ужасного айсберга
Если коротко, то к label-родителю нужно добавлять/убирать класс, в зависимости от checked радиокнопки.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.10.2018, 11:08
PHP/HTML
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
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <label>
        <input type="radio" name="radio" id="id1" onchange="radioChecked(this)" />RADIO-1
    </label>
    <label>
        <input type="radio" checked name="radio" id="id2" onchange="radioChecked(this)" />RADIO-2
    </label>
    <label>
        <input type="radio" name="radio" id="id3" onchange="radioChecked(this)" />RADIO-3
    </label>
    <script>
        let previousRadio = document.querySelector("input[name=radio]:checked"),
            previousId = previousRadio ? previousRadio.id : "отсутствует";
 
        function radioChecked(e) {
            alert("Предыдущий индекc радиокнопки: " + previousId
                + "\nТекущий индекс радиокнопки: " + e.id);
            previousId = e.id;
        }
    </script>
</body>
</html>
В Хроме работает идеально. В MS Edge не хочет отображать checked по умолчанию, но выдает, что выставлено ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.10.2018, 11:08
Помогаю со студенческими работами здесь

Как вывести input radio в зависимости от выше выбранного input radio
Нужно сделать как бы вывод на странице двух input radion. Выбор пола. Мужчина и Женщина. Если я выбираю Мужчина, то выводятся ниже еще...

Изменение состояния radio
Доброго время суток. Подскажите, пожалуйста. Я хочу чтобы при клике по radio изменялся цвет border-radius у активной radio. Но что-то не...

Как установить значение input`а(type=radio) в TWebBrowser?
Добрый день. Подскажите пожалуйста, как выставить значение input`a(type=radio) в TWebbrowser?

Выбор radio input + text input
Всем привет. Никак не могу решить задачу. Суть такая: на странице динамически создаются группы по 3 радио баттона + 1 селект и 1 просто...

Как при переключении кнопки <input radio> выводить разные данные?
У меня есть форма для заявки. Там кнопка input radio: До обеда и После обеда. Хочу чтоб при выборе значения до обеда выводилось время...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru