检测在 Angular.js ng-change 事件中复选框是选中还是未选中

Posted

技术标签:

【中文标题】检测在 Angular.js ng-change 事件中复选框是选中还是未选中【英文标题】:Detect if checkbox is checked or unchecked in Angular.js ng-change event 【发布时间】:2015-02-09 06:52:00 【问题描述】:

当单击复选框时,我想检测复选框是否已选中或未选中。

这就是我所拥有的:

<input type="checkbox" ng-model="answers[item.questID]" ng-change="stateChanged()" />

然后在我的控制器中:

$scope.stateChanged = function () 
    alert('test');

我可以在选中/取消选中时触发警报,但是如何检测复选框的状态?我做了一些研究以找到类似的问题,但我无法得到我需要的东西。

【问题讨论】:

【参考方案1】:

您可以在 ng-change 方法中使用绑定的 ng-model (answers[item.questID]) 值本身来检测它是否已被检查。

例子:-

<input type="checkbox" ng-model="answers[item.questID]" 
     ng-change="stateChanged(item.questID)" /> <!-- Pass the specific id -->

$scope.stateChanged = function (qId) 
   if($scope.answers[qId]) //If it is checked
       alert('test');
   

【讨论】:

是的,已经解决了,谢谢,我会在 8 分钟内选择你的答案。【参考方案2】:

复选框的状态将反映在您绑定到的任何模型上,在本例中为$scope.answers[item.questID]

【讨论】:

以上是关于检测在 Angular.js ng-change 事件中复选框是选中还是未选中的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 angular.js 中的 keydown 或 keypress 事件?

IE 11 没有触发“ng-change”(AngularJS)

在加载时为预先选中的复选框运行 ng-change 函数

Angularjs 1.5.7 ng-change 从组件不起作用

angularjs的ng-change事件演示

在表中选择 ng-change