Angularjs - 禁用和取消选中复选框

时间:2013-11-13 22:46:55

标签: javascript angularjs checkbox

我有一组复杂的复选框,这些复选框填充了来自多维数组的数据,并且有一些特定的事情需要与它们一起发生...我提取了我需要的最小值,所以我将尝试解释

在这个小提琴中

http://jsfiddle.net/EVZUV/

启用第一个复选框,禁用第二个复选框。选中第一个复选框后,第二个复选框将启用。我想要获取的是UNCHECK第二个框,如果在第一个复选框未选中时再次被禁用。

这是我几乎可以使用的代码

<input type="checkbox" ng-model="disablelist" ng-click="checkitems">Check this box to enable the other.. <br><br>
<input type="checkbox" ng-disabled="!disablelist" ng-checked="checkitems">When this checkbox is disabled it also must get unchecked

我刚刚收到intong-js并且有些想法对我来说非常“whaaa ..”但它看起来不错,所以我现在坚持不懈。

谢谢!

2 个答案:

答案 0 :(得分:13)

这里的简单解决方案:http://jsfiddle.net/7mKtF/2/

HTML:

<div ng-app="myApp">
    <input type="checkbox" ng-model="disablelist">Check this box to enable the other.. <br><br>
    <input type="checkbox" ng-disabled="!disablelist" ng-checked="disablelist && 0">When this checkbox is disabled it also must get unchecked
</div>

JS:

var app = angular.module('myApp', []);

基本上,我已更新您的ng-checked语句以包含disablelist属性。使用布尔逻辑,如果disablelist为假,则第二个复选框将评估为false。

编辑:

另外值得注意的是,您目前的方式,ng-click绑定实际上没有做任何事情。您可能希望使用ng-click使用参数括号来调用函数变量。

答案 1 :(得分:4)

您可以通过为第二个复选框指定模型,然后在单击第一个复选框时重置模型来执行此操作。

HTML:

<input type="checkbox" ng-model="disablelist" ng-click="otherOption = false" /> Check this box to enable the other..
<input type="checkbox" ng-model="otherOption" ng-disabled="!disablelist" ng-checked="!!otherOption && !disableList" /> When this checkbox is disabled it also must get unckeched

Check the result in this jsFiddle