【问题标题】:disable checkbox using angularjs使用angularjs禁用复选框
【发布时间】:2014-07-28 10:08:04
【问题描述】:
  1. 默认选中框的值为 1。
  2. 如果用户可以单击 ALL 或 DEFAULT 或 NONE 等按钮来选中复选框。
  3. 如果用户单击 NONE,则应选中并禁用 DEFAULT 复选框;默认情况下始终为 1。
  4. 如果用户单击按钮 ALL 或 DEFAULT 或任何自定义检查,则应删除 disabled 属性并正常执行。

注意:点击 NONE 时需要禁用复选框(来自控制器/视图);

 if(arrObj.id === 1){
    arrObj.enabled = true;
    arrObj.text = "1 [Default Value]";
    //TO DISABLE THE CHECKBOX so that it can't be unchecked
  }else{
    arrObj.enabled = false;
  }

DEMO LINK

【问题讨论】:

  • 当用户点击无时是否要禁用所有复选框
  • 不,只禁用默认复选框。
  • 你的问题不清楚。其实你想要什么?请在您的问题中给出更多解释。

标签: angularjs


【解决方案1】:

添加一个范围变量 enableBoxes 并使用 ng-disable 指令来禁用所有你想要的复选框,在这种情况下你可以使用

 <input type="checkbox" ng-model="n.enabled" ng-disabled="!enableBoxes && $index==0">{{n.text}} <br/>

看这里的例子

http://plnkr.co/edit/IMKkeyYUKzfXulhHGxpJ?p=preview

注意 $index==0 仅针对第一个复选框,如果需要针对其他人,可以应用更通用的规则

【讨论】:

  • 如果数组值是动态的怎么办?如何设置通用规则?如果数组值是 orderBy reverse 还是什么?还是设置了不同的默认值?
  • 与您决定哪个是默认值的方式相同,您可以决定禁用哪个复选框,您可以使用相同的逻辑。
猜你喜欢
  • 2023-04-04
  • 2013-11-26
  • 1970-01-01
  • 2019-01-23
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 2017-11-13
  • 2014-10-19
相关资源
最近更新 更多