Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要角材料md复选框_Javascript_Angularjs_Checkbox - Fatal编程技术网

Javascript 需要角材料md复选框

Javascript 需要角材料md复选框,javascript,angularjs,checkbox,Javascript,Angularjs,Checkbox,我有一组复选框,它们是一周中的几天。如果用户单击submit按钮,但未选中任何复选框,则我希望显示一条错误消息。下面是我正在使用的HTML代码 <form id="addEditForm" name="addEditForm" ng-submit="addEditForm.$valid && saveBooking()" novalidate> <div ng-repeat="item in days"> <md-checkb

我有一组复选框,它们是一周中的几天。如果用户单击submit按钮,但未选中任何复选框,则我希望显示一条错误消息。下面是我正在使用的HTML代码

<form id="addEditForm" name="addEditForm" ng-submit="addEditForm.$valid && saveBooking()" novalidate>
    <div ng-repeat="item in days">
        <md-checkbox ng-required="daysSelected.length == 0" ng-checked="dayExists(item, daysSelected)" ng-click="toggleWeekdays(item, daysSelected)" name="daysOfWeek">{{ item }}</md-checkbox>
    </div>

    <div flex ng-messages="addEditForm.daysOfWeek.$error" ng-if="addEditForm.$submitted">
        <div ng-message="required">Please select a day.</div>
    </div>

    <md-button aria-label="Save Booking" class="md-primary-short" type="submit" >Save</md-button>
</form>

{{item}}
请选择一天。
拯救

好吧,在您的示例中没有
submit
,但是我假设在您的HTTP代码下面的某个地方有一个

我建议您使用显示来自控制器的消息。您可以检查您的项目列表是否具有预期的长度(我猜是您已经实现的逻辑),如果没有满足条件,则显示消息


编辑

因此,我会在您的控制器中添加某种oracle,如:
$scope.sentinel=[]

选中某个框时,只需将其值添加到
sentinel
值:

$scope.sentinel.push(你的价值)

然后,当您单击
submit
按钮时,您只需检查其长度:

if ($scope.sentinel.length == 0) {
  $scope.displayError = true;
}

这是我想到的最简单的方法。不要忘记初始化
$scope。将error
变量显示为
false
,并在满足条件时将其恢复为
true

我已使用提交按钮更新了代码。我希望将错误消息内联,因为我还有其他字段(我在这里省略了这些字段),这些字段也可能包含错误消息。编辑问题后,再试一次!:)