我有这样的javascript来检查是否选中了复选框:
$scope.toggleCheck = function (course) {
//checkedfunction(course);
if (($scope.selectedCourses.indexOf(course) === -1)) {
$scope.selectedCourses.push(course);
$scope.planned += 3;
} else {
$scope.selectedCourses.splice($scope.selectedCourses.indexOf(course), 1);
$scope.planned -= 3;
}
$scope.getPercentage();
};
并在html中我有:
<input type="checkbox" ng-checked="checkedfunction(child)" ng-click="toggleCheck(child)" ng-disabled="required == (planned+completed) && (selectedCourses.indexOf(child) == -1) | filter: checkMpttdetails(child)" value=""/>
我想知道是否有checked()
函数来检查复选框是否已选中而不是使用indexof()
属性?
答案 0 :(得分:1)
如果你正在使用jQuery(不是jqLite - 尽管它可能有用),那么通过&#39;这个&#39;到您的点击处理程序:
ng-click="toggleCheck(this, child)"
并在您的点击处理程序中:
$scope.toggleCheck = function(element, course){
if ($(element).is(':checked)) {
...
}
}
答案 1 :(得分:0)
<input type="checkbox" ng-disabled="required == (planned+completed) && (selectedCourses.indexOf(child) == -1) | filter: checkMpttdetails(child)" ng-checked="isChecked" />
您可以通过切换$scope.isChecked
来选中/取消选中该复选框 - 您也可以通过查看$scope.isChecked
的值来检查是否已选中该复选框。
答案 2 :(得分:0)
使用$event
对象可以访问在ng-click上操作的元素。在此对象中有一个名为target
的属性(对于复选框输入)具有checked
状态。
ng-click="toggleCheck($event)"
控制器功能:
$scope.toggleCheck = function($event){
var thisCheckbox = $event.target;
if (thisCheckbox.checked) {
...
}
}
这是纯粹的Angular,不需要任何额外的库。