前言:在项目中需要使用到复选框,但是项目中又找不大案例,网上的资料查了又查,还是没找到很好的方案,我就一般看资料一般探索,写出了一个复选框,但是吧,我后面找到复选框更加准确的写法,我并没有改(我太懒了),后续在修改的时候需要把数据值绑定到复选框上就出现问题(数组形式的数据值,在js里面for循环给复选框赋true值,直接使用 $scope.address = {a:true}这种方式,没有用,因为是多选 ),接着我又是狂百度,试了好几次都不行,还让前端看了下,前端说她没用过这种写法,她说帮我改其他的方式,我思考了下,如果要改其他的写法,那我改动的地方有些麻烦,我就依旧维持原样,因为那个时候挺晚了,就烦到不想搞回家了,第二天,又是百度,看到了貌似一个还有用的内容,就先在自己的电脑上测试了,确实ok的,现在我把代码直接出来。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>复选框</title>
<script src="https://cdn.staticfile.org/angular.js/1.6.3/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp">
<div ng-controller="myCtrl">
<!--这是自己瞎捉摸的出来的玩意-->
<input name="check" type="checkbox" ng-model="address.a" value="a" ng-click="AddressIsCheck()">多a<br>
<input name="check" type="checkbox" ng-model="address.b" value="b" ng-click="AddressIsCheck()">多b<br>
<input name="check" type="checkbox" ng-model="address.c" value="c" ng-click="AddressIsCheck()">多c<br>
<span style="color:red" ng-show="isShow">最少选择一项</span>
<br><br>
<button ng-click="sub()">确定</button>
<button ng-click="check('a')">a复选框被选中</button>
</div>
<div><!--这是菜鸟上的复选框-->
<p>My cars:</p>
<input type="checkbox" ng-model="all"> Check all<br><br>
<input type="checkbox" ng-checked="all">Volvo<br>
<input type="checkbox" ng-checked="all">Ford<br>
<input type="checkbox" ng-checked="all">Mercedes
<p>点击 "Check all" 选择所有的车。</p>
</div>
</div>
</body>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope) {
$scope.AddressIsCheck = function () {
console.log("进来啦啦啦啦啦");
console.log($scope.address);
var count = 0;
angular.forEach($scope.address, function(value, key) {
console.log(key + ': ' + value);
if(true==value){
console.log("选中");
count = count + 1;
}
});
if(0==count){
$scope.isShow = true;
}else{
$scope.isShow = false;
}
};
$scope.sub = function () {
if(true==$scope.isShow){
alert("请选择多选");
}else{
alert("通过");
}
}
$scope.address = {a:false,b:false,c:false};//先初始化
$scope.check= function (value) {
if("a" == value){
console.log("我进来了");
$scope.address.a = true; //初始化后可一个一个赋值
// $scope.address = {a:true} //这种方式只适合单选项
}
}
});
</script>
</html>