У меня странное поведение с моими флажками:
Я хочу иметь 9 флажков: один для «недели», один для «выходных» и 7 для всех дней недели. Когда я нажимаю «неделю», я хочу установить выбранный понедельник до пятницы, а когда я нажимаю «выходные» - суббота и воскресенье. Мне это удается, но когда я хочу сделать обратное (когда я нажимаю на понедельник, вторник, среду, четверг и пятницу, я хочу установить выбранную неделю или то же самое для выходных), это не работает.
Я заметил, что в моих функциях valueChange мне нужно сделать
$scope.weekCBox = !$scope.weekCBox;
для обновления моего html-флажка недели
, но нет в понедельник, я нахожу это действительно странным, потому что они определенытаким же образом:
Вот мой HTML:
<div style="display:block;">
<b>Semaine</b>
<input type="checkbox" ng-model="weekCbox.value"
ng-change="valueWeekChange($index)"
onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
</div>
<div style="display:block;">
<b>Weekend</b>
<input type="checkbox" ng-model="weekendCbox.value"
ng-change="valueWeekendChange($index)"
onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
</div>
<div style="display:block;">
Lundi <input type="checkbox" ng-model="mondayCBox.value"
ng-change="valueMondayChange($index)"
onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
Mardi <input type="checkbox" ng-model="tuesdayCBox.value" ng-change="valueTuesdayChange($index)" onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
Mercredi <input type="checkbox" ng-model="wednesdayCBox.value" ng-change="valueWednesdayChange($index)" onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
Jeudi <input type="checkbox" ng-model="thursdayCBox.value" ng-change="valueThursdayChange($index)" onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
Vendredi <input type="checkbox" ng-model="fridayCBox.value" ng-change="valueFridayChange($index)" onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
Samedi <input type="checkbox" ng-model="saturdayCBox.value" ng-change="valueSaturdayChange($index)" onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
Dimanche <input type="checkbox" ng-model="sundayCBox.value" ng-change="valueSundayChange($index)" onkeypress='return (event.charCode >=45 && event.charCode <=57)||event.charCode==0'>
</div>
, а вот мой код JS:
$scope.mondayCBox = {
value: false
};
...
$scope.weekendCBox = {
value: false
};
$scope.valueWeekChange = function(index)
{
$scope.weekCBox.value = !$scope.weekCBox.value;
$scope.mondayCBox.value = $scope.weekCBox.value;
$scope.tuesdayCBox.value = $scope.weekCBox.value;
$scope.wednesdayCBox.value = $scope.weekCBox.value;
$scope.thursdayCBox.value = $scope.weekCBox.value;
$scope.fridayCBox.value = $scope.weekCBox.value;
}
$scope.valueWeekendChange = function(index)
{
$scope.weekendCBox.value = !$scope.weekendCBox.value;
$scope.saturdayCBox.value = $scope.weekendCBox.value;
$scope.sundayCBox.value = $scope.weekendCBox.value;
}
$scope.valueMondayChange = function(index)
{
$scope.updateWeekCBox();
}
...
$scope.valueSundayChange = function(index)
{
$scope.updateWeekendCBox();
}
$scope.updateWeekendCBox = function()
{
if ($scope.saturdayCBox.value==false || $scope.sundayCBox.value==false)
{
$scope.weekendCBox.value = false;
}
if ($scope.saturdayCBox.value==true && $scope.sundayCBox.value==true)
{
$scope.weekendCBox.value = true;
}
}
$scope.updateWeekCBox = function()
{
if ($scope.mondayCBox.value==false || $scope.tuesdayCBox.value==false || $scope.wednesdayCBox.value==false || $scope.thursdayCBox.value==false || $scope.fridayCBox.value==false)
{
$scope.weekCBox.value = false;
}
if ($scope.mondayCBox.value==true && $scope.tuesdayCBox.value==true && $scope.wednesdayCBox.value==true && $scope.thursdayCBox.value==true && $scope.fridayCBox.value==true)
{
$scope.weekCBox.value = true;
}
}
Если у вас есть идеи, я быбудь очень рад