我有三个下拉菜单: -
<form name="myForm" data-ng-submit="save(myForm.$valid)"novalidate="novalidate">
<label>1st</label>
<select ng-model="a.value[0]">
<option value="One">One</option>
<option value="Two">Two</option>
<option value="Three">Three</option>
</select>
<label>2nd</label>
<select ng-model="a.value[1]">
<option value="One">One</option>
<option value="Two">Two</option>
<option value="Three">Three</option>
</select>
<label>3rd</label>
<select ng-model="a.value[2]">
<option value="One">One</option>
<option value="Two">Two</option>
<option value="Three">Three</option>
</select>
<button type="submit" class="btn btn-warning"><i class="fa fa-save"></i>
Save</button>
</form>
$scope.a.value = [];
$scope.func = function () {
if (_.uniq($scope.a.value).length !== $scope.a.value.length) {
scope.notify("error", "Please set unique values");
}
};
我想要的是,如果下拉列表中的值不唯一,则不应保存。我应该申请哪些验证?在哪里?
答案 0 :(得分:0)
您所做的就是使用lodash识别重复值的主动方式。理论上你的实现应该有效。你试过吗?
理想情况下,当用户尝试选择值以获得更好的用户体验时,应检查重复值。一种方法是,您可以删除在后续下拉菜单中的第一个下拉列表中选择的值,依此类推。
答案 1 :(得分:0)
在js
添加: -
$scope.allModels = {
firstDD: 'One',
secondDD: 'Two',
thirdDD: 'Three'
}
然后在html
到所有下拉列表中使用
<select ng-model="$scope.allModels.firstDD">
<select ng-model="$scope.allModels.secondDD">
<select ng-model="$scope.allModels.thirdDD">
在save
函数中偶然找到它们
$scope.save = function(){
if($scope.allModels.firstDD != $scope.allModels.secondDD != $scope.allModels.thirdDD){
//do the thing you want or post it to server
}
}