有没有一种方法可以允许只有在输入了数据的情况下才标记复选框

Is there a way to allow a checkbox to be marked only if there is data entered?

本文关键字:数据 输入 情况下 复选框 一种 方法 有没有      更新时间:2023-09-26

我有一个ng中继器,每行都有一个输入类型复选框,以及3个文本字段。只有当用户在3个文本字段中的每个字段中输入一些文本时,我才允许选中复选框。如果用户尝试在不首先输入数据的情况下选择复选框,我希望显示一条警告消息。

我假设我必须检查三个ng模型(对于文本字段)是否为null或未定义或其他什么,但不确定如何在HTML中进行检查。

我的HTML看起来像这样:

<div ng-repeat="o in objects">
    <input type="checkbox" class="myClass" ng-click="doSomething(argument)>
    ....
    ....
    <input ng-model="model1">
    <input ng-model="model2">
    <input ng-model="model3">

编辑:在此处找到答案AngularJS-表单自定义验证-检查是否至少有一个输入为空

您可以禁用它们,并使用ng-change来监控所有3个文本输入是否都有值。

示例html:

<input type="text" ng-model="data.item3"  ng-change="update()"/>
<input type="checkbox" ng-model="data.model1" ng-disabled="checksDisabled"/>

控制器示例

.controller('MainCtrl',function($scope){
     $scope.checksDisabled=true;
     var data = $scope.data ={ };
     $scope.update=function(){
        $scope.checksDisabled = !(data.item1 && data.item2 && data.item3);
     }         
});

DEMO