angularJS怎么校验checkbox必须选中一个,换句话说就是怎么校验checkbox必须选择。
页面初始加载时,表单中的checkbox默认是全不选的,这时表单无法提交,必须选择至少一个后才能提交,就是对checkbox的必选校验(angularJS)...
页面初始加载时,表单中的checkbox默认是全不选的,这时表单无法提交,必须选择至少一个后才能提交,就是对checkbox的必选校验(angularJS)
展开
1个回答
展开全部
试试这个例子:
<!DOCTYPE html>
<html ng-app="test">
<head>
<title>checked</title>
</head>
<body ng-controller="chkCtrl">
<input type="checkbox" ng-model="m1">1<br/>
<input type="checkbox" ng-model="m2">2<br/>
<input type="checkbox" ng-model="m3">3<br/>
<input type="checkbox" ng-model="m4">4<br/>
<button ng-click="sub()">提交</button>
<script type="text/javascript" src="./angular.min.js"></script>
<script>
var app = angular.module('test', []);
app.controller('chkCtrl', function($scope){
$scope.sub = function(){
//m1到m4之间只要有一个选中 mode就是true
if($scope.m1 || $scope.m2 || $scope.m3 || $scope.m4){
alert('可以提交')
}
};
});
</script>
</body>
</html>
追问
谢谢你的回答,这个checkbox是ng-repeat指令后台动态取的,数量不确定,一般也会很多,这样不好没个都判断一下
追答
试试这种思路:
watch checkbox的值是否改变
<body ng-controller="chkCtrl">
<div ng-repeat="item in chkList"><input type="checkbox" ng-model="item.checked">1</div>
<button ng-click="sub()">提交</button>
<script type="text/javascript" src="./angular.min.js"></script>
<script>
var app = angular.module('test', []);
app.controller('chkCtrl', function($scope){
$scope.chkList = [
{id:1, checked: false},
{id:2, checked: false},
{id:3, checked: false},
{id:4, checked: false}
];
var flag = false;
$scope.$watch('chkList', function(newValue, oldValue) {
if(newValue !== oldValue){
flag = true;
}
}, true);
$scope.sub = function(){
if(flag){
alert('可以提交了')
}
};
});
</script>
</body>
</html>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询