Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Переключать 2 чекбокса (https://javascript.ru/forum/angular/53420-pereklyuchat-2-chekboksa.html)

desperado 03.02.2015 17:22

Переключать 2 чекбокса
 
Привет. Подскажите плз момент, есть 2 чекбокса.

Как чекать один и снимать чек с другого?

Ну, вообщем, если 1 чекнут, второй не чекнут, ну и наоборот, второй если чекаем, с первого чек снимается.

$scope.$watch('value1', function() {
   if ($scope.value1 == true) {
      $scope.value2 = false;
    }
   });

  $scope.$watch('value2', function() {
       if ($scope.value2 == true) {
        $scope.value1 = false;
        }
   });


ng-model="value1" // в чекбоксе
ng-model="value2" //  в чекбоксе


дргуих идей нет, но я не хочу использовать $watch

ksa 03.02.2015 19:39

Цитата:

Сообщение от desperado
есть 2 чекбокса.
Как чекать один и снимать чек с другого?

Для этого есть радиокнопки... ;) Они так и работают.

ksa 03.02.2015 19:55

Цитата:

Сообщение от desperado
если 1 чекнут, второй не чекнут, ну и наоборот, второй если чекаем, с первого чек снимается

Как вариант...

<!DOCTYPE html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.1.4/angular.min.js"></script>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
function myControl($scope) {
	$scope.val0=false;
	$scope.val1=false;
	$scope.test=function (N) {
		$scope['val'+((N+1)%2)]=!$scope['val'+N];
	};
};
</script>
</head>
<body ng-controller='myControl'> 
<input ng-model='val0' ng-click='test(0);' type='checkbox' />
<input ng-model='val1' ng-click='test(1);' type='checkbox' />
</body>
</html>

desperado 04.02.2015 11:46

Спасибо, но я забыл уточнить, что чек можно снять с обоих :)

т.е. схема такая:

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

блин, сам запутался))

ksa 04.02.2015 13:41

Цитата:

Сообщение от desperado
Если один из них чекнут и я клацаю на нем же - чек снимается у него (у второго не появляется)

Т.е. сам ты не собираешся мозгами шевелить? :D

<!DOCTYPE html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.1.4/angular.min.js"></script>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
function myControl($scope) {
	$scope.val0=false;
	$scope.val1=false;
	$scope.test=function (N) {
		var ok=$scope['val'+N];
		if (ok) {
			$scope['val'+((N+1)%2)]=!ok;
		};
	};
};
</script>
</head>
<body ng-controller='myControl'> 
<input ng-model='val0' ng-click='test(0);' type='checkbox' />
<input ng-model='val1' ng-click='test(1);' type='checkbox' />
</body>
</html>


Часовой пояс GMT +3, время: 00:33.