如何使用angularjs验证复选框(必选)
how to validate checkbox(mandatory) using angularjs?
该页列出了带有复选框的商店。我需要将必填项放入复选框,如果复选框中没有选择,我需要输入错误信息,此字段为必填项,没有选择,提交按钮应该禁用,如果用户选择了存储列表中的任何一个,强制信息应该消失,提交按钮应该启用。我已经做了,但当我检查3存储然后只有消息消失和提交按钮启用。期望:当用户选中任何人列出的复选框消息应该消失,提交按钮应该启用。如果该复选框中没有选中任何内容,则应该禁用消息发送和提交按钮。
function Test1Controller($scope) {
var serverData = ["Store1", "Store2", "Store3"];
$scope.items = [];
for (var i = 0; i < serverData.length; i++) {
var modal = {
name: serverData[i],
selected: false
};
$scope.items.push(modal);
}
$scope.check = function() {
var checkedItems = [];
for (var i = 0; i < $scope.items.length; i++) {
if ($scope.items[i].selected) {
checkedItems.push($scope.items[i].name);
}
}
console.log(checkedItems);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
<div ng-app>
<form name="projectForm">
<div ng-controller="Test1Controller">
<div ng-repeat="item in items">
<input type="checkbox" ng-model="item.selected" required="" /> {{item.name}}
</div>
<div class="form-error" ng-messages="projectForm.booktime.$error">
<div class="form-error" ng-message="required">* Mandatory</div>
</div>
<input type="button" name="submit" value="submit" ng-disabled="projectForm.$invalid" ng-click="check()" />
</div>
</div>
</form>
我在你的代码中调整了一些东西,让它工作。
HTML:
<div ng-app="myApp">
<form name="projectForm">
<div ng-controller="Test1Controller">
<div ng-repeat="item in items">
<input type="checkbox" ng-model="item.selected" ng-change="itemsChecked()" required="" /> {{item.name}}
</div>
<div class="form-error" ng-messages="projectForm.booktime.$error">
<div class="form-error" ng-message="required" ng-show="!itemChecked">* Mandatory</div>
</div>
<input type="button" name="submit" value="submit" ng-disabled="!itemChecked" ng-click="check()" />
</div>
</form>
在Javascript中,您没有正确创建控制器。您应该首先创建一个模块,然后将控制器连接到该模块,如下所示。
Javascript:var app = angular.module("myApp", []);
app.controller("Test1Controller", function($scope) {
var serverData = ["Store1", "Store2", "Store3"];
$scope.items = [];
$scope.itemChecked = false;
for (var i = 0; i < serverData.length; i++) {
var modal = {
name: serverData[i],
selected: false
};
$scope.items.push(modal);
}
$scope.itemsChecked = function() {
$scope.itemChecked = false;
for (var i = 0; i < $scope.items.length; i++)
{
if($scope.items[i].selected)
{
$scope.itemChecked = true;
}
}
}
$scope.check = function() {
var checkedItems = [];
for (var i = 0; i < $scope.items.length; i++) {
if ($scope.items[i].selected) {
checkedItems.push($scope.items[i].name);
}
}
console.log(checkedItems);
}
});
相关文章:
- 无法限制所选复选框的数量(尝试了多个代码段)
- 点击后,比较id'所选复选框的s以列出href
- jquery多选复选框值
- Javascript全选复选框突然不起作用
- jqGrid-当我点击网格中的另一个复选框时,选中多选复选框
- 点击可选复选框时如何计算价格(使用贝宝支付表单)
- 在php生成的页面上获取勾选复选框列表的动态方式
- AngularJS:单选复选框模型不会改变
- 如何获取与提交表单上所选复选框相同行的文本元素
- 获取所选复选框的值和文本
- 用于“全选”复选框的脚本在WordPress页面上不起作用
- 使用 jQuery 获取所选复选框的值
- 如何将所选复选框的值发送到 app.get 路由
- 如何通过单击按钮添加多选复选框
- 如何使用jQuery验证插件根据输入类型=文本/单选/复选框验证表单
- j查询各种字段添加,带有JSFiddle的可选复选框
- 单击行时突出显示 Jqgrid,但不选中多选复选框
- 必填复选框为'如果用户在检查之前单击了提交,则不使用civem.js
- 如何添加“必填”复选框
- 如何在勾选复选框时使项目成为必填项