使用AngularJS检测多个选择/下拉列表的相同项目选择

时间:2014-08-27 18:03:13

标签: javascript angularjs select

我还是新学习Angular可以做的所有可怕的事情,我想看的一件事就是如果一组下拉列表选择了相同的项目,则抛出ng-invalid

例如,如果我有三个select下拉,每个下拉项目:苹果,橙子,桃子。用户选择苹果下拉1和2,我如何使用角度来检测select标签中的这个,并抛出ng-invalid

我正在使用的当前select列表的示例如下。

<span>
   <select ng-options="champ1.cID as champ1.cName for champ1 in Champions1 | orderBy: 'cName'" ng-init="0" ng-model="champ1">{{champ1.cName}}</select>
</span>
<span>
   <select ng-options="champ2.cID as champ2.cName for champ2 in Champions2 | orderBy: 'cName'" ng-init="0" ng-model="champ2">{{champ2.cName}}</select>
</span>
<span>
   <select ng-options="champ3.cID as champ3.cName for champ3 in Champions3 | orderBy: 'cName'" ng-init="0" ng-model="champ3">{{champ3.cName}}</select>
</span>

我会使用ng-if之类的东西,或者某种ng-class折腾吗?我很困惑在没有做某种指令或JQuery检查的情况下我在哪里/如何验证角度。

1 个答案:

答案 0 :(得分:2)

您可以使用ui-validate进行自定义验证

<select ng-options="champ3.cID as champ3.cName for champ3 in Champions3 | orderBy: 'cName'" 
   ng-init="0" ng-model="champ3" 
   ui-validate="{'same' : 'champ1 == champ3 || champ2 == cmap3'}">
  {{champ3.cName}}
</select>

但上面只回答了一个例子。使用ui验证更多自定义验证。请阅读ui-validate here

您应该阅读有关表单验证的更多信息。示例链接here / here