有没有办法只有在输入数据时才能标记复选框?

时间:2014-11-03 23:04:40

标签: javascript angularjs twitter-bootstrap

我有一个ng-repeater,每行都有一个类型为checkbox的输入,以及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 - Form Custom Validation - Check if at least one input is empty

找到答案

1 个答案:

答案 0 :(得分:1)

您可以停用它们并使用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