angularjs - AngularJs 验证,所有输入必须有不同的值
问题描述
可以有 1 个或多个输入。所有输入必须具有不同的值。如何创建这样的验证(指令)?如果用户在某些输入中输入非唯一值 - 它应突出显示为无效。
现在我只有没有验证的html模板
<form name="myForm" id="myForm">
<md-input-container ng-repeat="(key, item) in data">
<label>{{labels[item.id]}}</label>
<input ng-model="data[key].number" required>
</md-input-container>
<md-button ng-click="save()" class="md-raised md-button md-primary" ng-disabled="myForm.$invalid">
Save
</md-button>
</form>
更新。我设法用 ng-change 指令解决了这个问题:
模板是一样的,除了:
<input ng-model="data[key].number" name="number_{{key}}" required ng-change="validate(key, myForm)">
验证控制器中的功能:
$scope.validate = function(key, myForm) {
for (let i = 0; i < data.length; i++) {
if(i == key) continue;
if(data[i].number === data[key].number){
myForm['number_' + key].$setValidity("unique", false);
return;
}else{
myForm['number_' + key].$setValidity("unique", true);
}
}
};
解决方案
我会使用ng-change
而不是指令。您可以传递controlName
并inputValue
进入您的函数,并可以进行适当的验证
推荐阅读
- python - 如果切片副本引用为什么会出现这种行为?
- r - 选举/人口普查数据的多变量线性回归及由此产生的错误
- javascript - 将数据从 vanilla Javascript 传递到 React 的最佳方式?
- java - SPRING - Soap 异常:服务器无法识别 HTTP 标头 SOAPAction 的值:
- python - 在 Tensorflow 中,您是否需要提供与您的需要无关的值?
- python - data.plot.bar() 混合索引标签
- python - “pip”和“安装”错误
- r - 如何在 R 中展平 lapply 的结果?
- mysql - 初始化埋在 DLL 中的 MySqlDB.MySql.MySql() 时出现 NullReferenceException
- javascript - 垂直和水平范围滑块