Задать вопрос
@m4f1

Как правильно вызвать функцию при нажатии на radio?

Как правильно ссылаться на элементы страницы средствами javascript?
Нужно сделать так, чтобы при нажатии на один элемент radio выполнялась определенная функция, на второй аналогично:
1) Курьер (СДЭК|Посылка)
2) Пункты самовывоза (СДЭК|Посылка)

Код ниже нет возможности отредактировать, создается каждый раз когда человек вызывает форму!
<div id="second-part">
<div id="sample_form_deliv" class="cart_delivery b-field clearfix">	
<fieldset required="" class="b-checkbox-group">		
<legend class="p_header bold">Способ доставки:</legend>		
<label class="input-label left">			
<input class="b-check-box" type="radio" data-rate="380" value="759" name="sample_form_deliv"><span></span>
			Курьер (СДЭК|Посылка) (380 ₽)		
</label>		
<label class="input-label left">			
<input class="b-check-box" type="radio" value="75" name="sample_form_deliv"><span></span>
			Пункты самовывоза (СДЭК|Посылка)		
</label>	
</fieldset>
</div></div>
  • Вопрос задан
  • 549 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@Mysterion
function fnc() {
	alert('function called');
}
window.onload=function(){
	var b = document.getElementsByName("sample_form_deliv");
	var p = null;
	for (var i = 0; i < b.length; i++) {
		b[i].addEventListener('change', function() {
			if (this !== p) {
				prev = this;
				fnc();
			}
		});
	}
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Можешь так, можешь брать querySelectorAll - все радио с определенным классом или в определенном блоке и сравнивать там не знаю по name или еще чему- radio === checked ? 1 : 2; Только не забывай - радио 1 из группы может быть активен)
const radio1 = document.querySelector('.radio-1');
const radio2 = document.querySelector('.radio-2');
const myFunction1 = () => {
 console.log('radio1');
}
const myFunction2 = () => {
 console.log('radio2');
}
radio1.addEventListener('change', myFunction1);
radio2.addEventListener('change', myFunction2);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы