Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2018, 18:54
Интересующийся
Отправить личное сообщение для dranoc Посмотреть профиль Найти все сообщения от dranoc
 
Регистрация: 31.08.2017
Сообщений: 11

Не работает 2 код
<p><input type="checkbox"  name="a" value=""> Выбрать</p>
    <p><input class="radio" name="one" type="radio" value="nedzen"> 1</p>
    <p><input class="radio" name="two" type="radio" value="dzen"> 2</p>

let check = document.getElementsByName("a")[0],
            radios = document.querySelectorAll(".radio");
 
        let sw = () => check.checked ? radios.forEach(e => e.disabled = false) : radios.forEach(e => e.disabled = true);
        sw();
        check.onchange = sw;
        console.log(radios);

Код не дает нажать радиокнопки пока не активен чекбокс, сделал также для второй группы радиокнопок и чекбокса - не работает(

<p><input type="checkbox" name="b" value=""> Выбрать</p>
    <p><input class="radio1" name="one" type="radio" value="nedzen"> 1</p>
    <p><input class="radio1" name="two" type="radio" value="dzen"> 2</p>


let check = document.getElementsByName("b")[0],
            radios = document.querySelectorAll(".radio1]");
 
        let sf = () => check.checked ? radios.forEach(e => e.disabled = false) : radios.forEach(e => e.disabled = true);
        sf();
        check.onchange = sf;
        console.log(radios);


js Знаю пока плохо
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2018, 19:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от dranoc
сделал также для второй группы радиокнопок
почему в одной группе разные имена?
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2018, 19:22
Интересующийся
Отправить личное сообщение для dranoc Посмотреть профиль Найти все сообщения от dranoc
 
Регистрация: 31.08.2017
Сообщений: 11

Разные имена
Случайно так сделал, но разные или одинаковые сути не меняет, 2 почемуто не работает, точнее он работает если его поставить первым в коде, но тогда не работает 2 в любом случае
Ответить с цитированием
  #4 (permalink)  
Старый 15.11.2018, 21:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

dranoc,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

<style type="text/css">
</style>
  <script>
     addEventListener('DOMContentLoaded', function() {
     document.querySelectorAll('.radio').forEach(d => d.addEventListener('click', (e, {target} = e) =>
     target.type == 'radio' && !d.querySelector('[type="checkbox"]').checked && e.preventDefault()
     ))});
  </script>
</head>

<body>

<div class="radio">
<p><input type="checkbox" value=""> Выбрать</p>
<p><input name="one" type="radio" value="nedzen"> 1</p>
<p><input name="one" type="radio" value="dzen"> 2</p>
</div>
<div class="radio">
<p><input type="checkbox" value=""> Выбрать</p>
<p><input name="two" type="radio" value="nedzen"> 1</p>
<p><input name="two" type="radio" value="dzen"> 2</p>
</div>

</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2018, 01:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>

<html>
<head>
	<title>Untitled</title>
	<meta charset="utf-8">
	<style type="text/css">
</style>
<script>
	addEventListener('DOMContentLoaded', ()=>
		document.querySelectorAll('[type="radio"]').forEach(el=>
			el.onchange =e=> el.checked = el.closest('.radio').querySelector('[type="checkbox"]').checked));
</script>
</head>

<body>

	<div class="radio">
		<p><input type="checkbox" value=""> Выбрать</p>
		<p><input name="one" type="radio" value="nedzen"> 1</p>
		<p><input name="one" type="radio" value="dzen"> 2</p>
	</div>
	<div class="radio">
		<p><input type="checkbox" value=""> Выбрать</p>
		<p><input name="two" type="radio" value="nedzen"> 1</p>
		<p><input name="two" type="radio" value="dzen"> 2</p>
	</div>

</body>
</html>

Последний раз редактировалось j0hnik, 16.11.2018 в 02:00.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код, при дублировании блоков! Rockship Элементы интерфейса 8 17.06.2015 11:47
Подскажите как работает данный код Victor031 Общие вопросы Javascript 4 10.02.2015 08:12
Не работает JS, если подгружаю код из файла pashin76 Events/DOM/Window 3 24.10.2013 10:25
Код работает корректно во всех браузерах кроме IE8 Yamasa Events/DOM/Window 6 18.01.2011 07:40
Код не работает в седьмом Эксплорере... vol4ara Общие вопросы Javascript 0 14.07.2008 18:53