当输入字段位于 ng 重复中时,ng 禁用不起作用
ng-disabled not working when input fields are in an ng-repeat
如果数组中的输入字段无效,我正在尝试禁用我的提交按钮。
这是我的网页
<form name="membersForm">
<div ng-repeat="emailInput in emailInputs">
<div class="input-field col s10">
<input id="email{{$index}}" type="email" class="validate email" length="50" maxlength="50" ng-model="email['email_' + $index]" required>
<label for="email{{$index}}">{{emailInput.label}}</label>
</div>
<div class="input-field col s2">
<div class="btn btn-floating waves-effect waves-light red" ng-click="removeEmail($index)">
<i class="material-icons">clear</i>
</div>
</div>
</div>
<div class="col s12">
<a class="btn-floating btn waves-effect waves-light" id="addEmail" ng-click="addEmail()">
<i class="material-icons">add</i>
</a>
</div>
<a class="waves-effect waves-light btn" type="submit" ng-disabled="membersForm.$invalid">
Continue
</a>
</form>
如您所见,我有一个按钮可以动态添加更多电子邮件输入。
这是我的控制器:
class teamMembersCtrl {
constructor($scope) {
'ngInject';
$scope.emailInputs = [
{
label: 'Email'
}
];
$scope.email = {};
$scope.setCurrentPrice();
$scope.addEmail = function () {
$scope.emailInputs.push({
label: 'Email'
});
}
$scope.removeEmail = function ($index) {
$scope.emailInputs.splice($index,1);
}
}
}
问题
如果电子邮件输入无效,而电子邮件输入是使用 ng-repeat 动态添加的,如何禁用提交按钮?
谢谢!
来自 Angularjs 文档的表单:
表单是 FormController 的实例。表单实例可以 (可选)使用 Name 属性发布到作用域中。
同样,具有 ngModel 指令的输入控件包含 NgModelController的实例。这样的控件实例可以是 使用 name 属性作为表单实例的属性发布 在输入控件上。name 属性指定 窗体实例上的属性。
这意味着窗体和控件的内部状态 可用于使用标准绑定在视图中进行绑定 原。
这意味着,如果您将 name
属性添加到表单中,那么您可以访问表单及其范围内的所有属性,这意味着您可以访问验证表单所需的所有信息,包括它是否有效、原始或脏污等。为了使其正常工作,您需要 2 个主要内容:
- 将 name 属性添加到表单中,这将是用于获取表单数据的变量的名称。所以
name = "myform"
将表单存储在$scope.myform
. - 向所有输入添加
ng-model
,如果输入没有ng模型,则在表单的验证中不会考虑它。
之后,您可以随时使用 $scope.myform.$valid
了解您的表单是否有效。作为额外的奖励,您还可以将 name
属性添加到每个输入,这也将为$scope.myform
中的每个输入添加一个对象,其中包含该输入的所有信息及其验证。
编辑:这是一个 plunkr 和一个你想做的事情的例子:http://plnkr.co/edit/86p9PrNnFVdfB7y406a6?p=preview
禁用提交按钮,请设置 $scope.invalid = true; 在您的控制器中,而不是在您的 html ng-disabled="invalid" 中。 根据您检查电子邮件输入是否无效的方式,相应地设置 $scope.invalid 。
- 角度ng变化或ng点击选择can'不起作用
- AngularJS ng include dons'不起作用
- ng disabled在chrome中不起作用.按钮在角度上未禁用
- 角度无线电按钮ng模型不起作用
- Angular js+ng repeat+字母数字索引不起作用
- 角度Js ng-disabled不起作用
- AngularJS ng include won'不知什么原因不起作用
- 角度过滤器和ng点击不起作用
- 初始化ng模型时,Angular ui选择占位符不起作用
- 角度去抖动(ng模型选项)不起作用
- angularjs ng点击运行时标记不起作用
- Ng点击don´不起作用
- 为什么ng节目不起作用
- 带有粘性标题的角度ng视图不起作用
- select中布尔值的Angularjs ng值不起作用
- ng模型在$(element).clone()之后不起作用
- AngularJS触发ng更改不起作用
- Angular js-ng选项不起作用
- Angular JS中的setInterval对HighCharts-ng不起作用
- 禁用Angular js ng不起作用