当在一个表单中进行更改时,ng-disabled 会触发所有表单验证
ng-disabled fires all form validation when changes made in one form
我在html页面中有多个表单,每个表单都执行一些操作,例如添加,编辑。
每个表单都有 ng-disabled 指令,该指令检查某些条件,并在发生某些更改时触发相应的 ng-disabled 函数。
问题是当一个表单中的值更改时,它会触发每个表单的所有 ng 禁用函数。
法典:
<body ng-controller="MainCtrl">
<div ng-form="myForm">
<input type="text" required ng-model="user.name" placeholder="Username">
<button ng-click="doSomething()" ng-disabled="check() || myForm.$invalid">DO</button>
</div>
<div ng-form="myForm2">
<input type="text" required ng-model="user.name2" placeholder="Username">
<button ng-click="doSomething2()" ng-disabled="check2() || myForm2.$invalid">DO</button>
</div>
</body>
脚本代码:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.check = function() {
console.log("check called");
}
$scope.check2 = function() {
console.info("check two called");
}
});
Plnkr link
您可以在控制台中看到,当其中一个模型发生变化时,它会运行所有功能。
我认为这是一种正常行为。每次模型更改时,都会重新执行 ng 禁用中的条件。因此,每次在输入中键入内容时,您都会得到 2 console.log
。然后,如果函数的返回为 true,则禁用组件,否则启用它。
相关文章:
- 如果ng单击附加到提交按钮,则表单未验证
- 使用 ng-repeat访问 ng 表单元素/值
- 当在一个表单中进行更改时,ng-disabled 会触发所有表单验证
- 动态添加 ng 表单和验证
- 从包含ng的字段中获取表单数据,而无需使用ng模型
- 在表单进入Angular中的ng-submit之前验证表单
- 如何访问嵌套的表单ng包含范围/字段
- 有角度的ng消息显示ng重复表单上的错误
- 正在使用ng消息验证动态表单
- angular js中嵌套ng include内的表单
- 角度表单验证ng已禁用,无法工作
- 使用ng repeat将表单元素绑定到角度中的新对象
- 为什么我的表单没有'它不起作用's在ng的内部重复
- 如何在 ng 重复中访问 Angular 表单上的$valid
- 如何使用递增的 ng 模型动态创建多个表单输入字段
- 如何从 ng 重复项填充表单
- AngularJS ng禁用在表单中不起作用
- 如何防止在表单中使用多个按钮时触发提交/ng-提交事件
- Angular$scope$注意仅从表单(ng-model指令)更改的变量
- Angular.js - ng-disabled在复选框上,仍然提交一个有效的表单