Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2017, 12:42
Новичок на форуме
Отправить личное сообщение для katefarine Посмотреть профиль Найти все сообщения от katefarine
 
Регистрация: 23.07.2017
Сообщений: 8

Активность кнопки при нажатии на слой
Всем добрый день!

Имеется такое задание.
есть форма, на ней несколько блоков и кнопка (по умолчанию - неактивная).
Необходимо сделать так, чтобы при нажатии на блок кнопка становилась активной, а если нажать на любое другое место формы (не на блок) кнопка снова становилась неактивной.

Заранее спасибо за предложенные варианты решения.
Изображения:
Тип файла: jpg Безымянный.jpg (21.9 Кб, 3 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2017, 13:40
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
<style>
	form{
		width: 200px;
		height: 100px;
		border: 1px solid red;
	}
	div{
		display: inline-block;
		width: 50px;
		height: 50px;
		border: 1px solid green;
	}
</style>
</head>
<body> 
	<form action="">
		<div>1</div>
		<div>2</div>
		<div>3</div>
		<button disabled>кнопка</button>
	</form>
	<script>
document.querySelectorAll('div').forEach((el)=> el.addEventListener("click", function(e){
	e.stopPropagation();
document.querySelector('button').disabled = false;
})
);
document.querySelector('form').addEventListener("click", function(e){
	document.querySelector('button').disabled = true;
});
	</script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2017, 20:23
Новичок на форуме
Отправить личное сообщение для katefarine Посмотреть профиль Найти все сообщения от katefarine
 
Регистрация: 23.07.2017
Сообщений: 8

Спасибо большое за помощь!!!
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2017, 22:21
Новичок на форуме
Отправить личное сообщение для katefarine Посмотреть профиль Найти все сообщения от katefarine
 
Регистрация: 23.07.2017
Сообщений: 8

Еще вопрос.
Как реализовать такую же работу программы, но чтобы кнопка блокировалась при 2ом нажатии на блок?
Например, 1 раз - активна, 2- нет, 3 -активна, и т.д.
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2017, 22:43
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<style>
		form{
			width: 200px;
			height: 100px;
			border: 1px solid red;
		}
		div{
			display: inline-block;
			width: 50px;
			height: 50px;
			border: 1px solid green;
		}
	</style>
</head>
<body> 
	<form action="">
		<div>1</div>
		<div>2</div>
		<div>3</div>
		<button disabled>кнопка</button>
	</form>
	<script>
		var i = 0;
		document.querySelectorAll('div').forEach((el)=> el.addEventListener("click", function(e){
			e.stopPropagation();
			i++;
			document.querySelector('button').disabled = (i%2) ? false : true;
		})
		);
		document.querySelector('form').addEventListener("click", function(e){
			document.querySelector('button').disabled = true;
		});
	</script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2017, 22:50
Новичок на форуме
Отправить личное сообщение для katefarine Посмотреть профиль Найти все сообщения от katefarine
 
Регистрация: 23.07.2017
Сообщений: 8

Но получается, что например, при нажатии на еще один блок кнопка снова неактивна. Просто задание состоит в том, чтобы при выделении блока (нажатии на блок), он менял цвет и при этом кнопка становилась активна. Например, я выделаю все блоки, и кнопка всегда активна (не меняет свое состояние), а если я прохожусь по всем блокам по второму разу, т.е. снимаю выделение, то когда все выделение снято со всех блоков - тогда кнопка снова неактивна
Ответить с цитированием
  #7 (permalink)  
Старый 23.07.2017, 23:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

katefarine,
если хотя бы у одного блока класс active, кнопка тоже активна? так?
Ответить с цитированием
  #8 (permalink)  
Старый 23.07.2017, 23:14
Новичок на форуме
Отправить личное сообщение для katefarine Посмотреть профиль Найти все сообщения от katefarine
 
Регистрация: 23.07.2017
Сообщений: 8

да! а если нет ни у одного - то неактивна.
Ответить с цитированием
  #9 (permalink)  
Старый 23.07.2017, 23:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

katefarine,
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <style>
    form{
      width: 200px;
      height: 100px;
      border: 1px solid red;
    }
    div{
      display: inline-block;
      width: 50px;
      height: 50px;
      border: 1px solid green;
    }
    .active{
      background-color: #8B4513;
    }

  </style>
</head>
<body>
  <form action="">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <button disabled>кнопка</button>
  </form>
  <script>
    document.querySelector('form').addEventListener("click", function(e){
      var target = e.target;
        if (target.closest("div")) target.classList.toggle("active");
        else document.querySelectorAll('div').forEach(el=> el.classList.remove("active"));
      document.querySelector('button').disabled = !document.querySelectorAll('div.active').length;
    });
  </script>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 23.07.2017, 23:48
Новичок на форуме
Отправить личное сообщение для katefarine Посмотреть профиль Найти все сообщения от katefarine
 
Регистрация: 23.07.2017
Сообщений: 8

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод информации при нажатии кнопки читать далее vacuumtrade Элементы интерфейса 44 15.07.2015 06:33
Появление кнопки «удалить отмеченные» при нажатии одного checkbox zoOmer Общие вопросы Javascript 11 20.11.2014 16:29
Смена данных внутри формы, при нажатии кнопки... Ewigkeit13 jQuery 5 18.09.2014 04:44
Вставка текста при нажатии кнопки visier Элементы интерфейса 5 03.09.2014 14:57
SyntaxHighlighter подсветка при нажатии faraday Общие вопросы Javascript 3 31.03.2012 23:43