在多个窗体中对控制器进行角度、必要的检查
Angular, required check on controller throughout multiple forms
我正在尝试为所需输入类型的场景找到一个简单的解决方案。我有多个小表单,所有表单都通过一个按钮发送,保存在页面底部。我试图实现的是类似ngRequired的东西,但要跨越整个控制器,而不仅仅是单个表单。因此,所需的效果非常简单——如果没有填写任何输入,则将布尔值(或其他值)设置为false,从而禁用底部的保存按钮。
所以我的第一次尝试是这样的——
我有一个模型的每一个要求的项目-有10个项目
然后我有一个功能,当你试图点击按钮时,检查有多少像这个一样被点击
if($scope.modeltracker1){
//if there is anything inside model 1 add 1 to the tracker
$scope.modeltracker += 1;
}
如果计数器不是10,不要做任何事情(所有要求都没有填写)
if($scope.modeltracker != 10){
//do nothing because all required are not filed out
}else{
//run save, all required all filed out
}
所以,我觉得应该有一个比我第一次尝试更简单的解决方案。也许是在检查这些必填字段中的任何一个是否为假的过程中,不要开火?我知道ngRequied会很好,但不幸的是,它的结构方式不可能是一个大的形式。必须有一种更容易的方法来完成这项任务。
任何意见都将不胜感激,感谢阅读!!
您可以使用ng表单嵌套多个表单。它允许使用嵌套表单并将多个表单作为一个表单进行验证
所以,你需要把你的多个表单嵌套在一个根表单中
<div ng-controller="demoController">
<form name="parentForm">
<ng-form name="firstForm">
<input type="text" ng-model="firstModel" required>
</ng-form>
<ng-form name="secondForm">
<input type="text" ng-model="secondModel" required>
</ng-form>
</form>
</div>
然后,您所需要做的就是检查父窗体的验证状态。
angular.module('formDemo', [])
.controller('demoController', ['$scope', function($scope) {
if($scope.parentForm.$valid) {
//run save, all required all filed out
} else {
//do nothing because all required are not filed out
}
}]);
您可以使用myForm.$invalid
指令,如下所述:当表单与AngularJS 无效时禁用提交按钮
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 防止Iframe窗体在新窗口中打开
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何检查管道中未定义的项目
- 主干-不管怎样,检查事件以前是否绑定过
- Meteor-将选定窗体中的对象添加到集合中
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 递归使用 eval() 是检查程序执行的好方法吗?
- 检查onsubmit doenst work jquery contactform上的函数
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- API密钥使用和检查示例
- 如何让程序检查所选单词中是否有按键
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 用于检查数组中是否存在元素的javascript自定义方法
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 如何检查字符串的一部分与数组匹配
- Jquery如何检查今天的时间大于使用给定时间
- 主干窗体隐藏字段未呈现
- 检查动态窗体中的单选按钮
- 在多个窗体中对控制器进行角度、必要的检查