【问题标题】:Angular JS validation / check dataAngular JS 验证/检查数据
【发布时间】:2026-01-19 12:20:03
【问题描述】:

是否可以将 Angular “必需”指令/属性设置为输入字段以外的其他元素? 我在页面上有几个列表,用户可以在其中检查之前页面中输入的数据......如果“必需”数据完整,用户应该只能“提交”(将数据发送到数据库......)。

那么如何检查列表视图中显示的数组中的数据? (好吧,遍历数组并检查值(是否为空?)是可能的 - 但我认为有更好的解决方案......也许是自定义指令?)

【问题讨论】:

  • 你检查过这个*.com/questions/15360094/…
  • 检查了这个,它非常有帮助,但我怎么能做到这一点,这取决于多个列表元素?我已经为多个元素添加了具有相同名称(name="required")的名称属性,并且按钮看起来像这样 ng-disabled="!form.required.$valid"... 但这并不工作,即使元素不为空,按钮仍处于禁用状态...
  • 你能分享一些小提琴中的代码吗? name 用于引用元素的元素的属性。你没有设置name=required,required是一个独立的属性
  • 这很清楚......这是我的第一个小提琴,不知道它是如何不识别 Angular --> jsfiddle.net/enND2/2 也许是因为我正在使用带有 angular 的 Jquery mobile。 ..
  • <ol>等列表没有选择的概念,需要自己实现,或者使用html类型<select>

标签: validation angularjs


【解决方案1】:

您可以在具有 ng-model 的元素上设置角度验证指令。 ng-model 指令有一个具有 $error、$invalid 等属性的控制器。因此 ng-model 控制器的作用类似于错误的存储。

如果您使用更多奇特的输入或不使用 ng-model,我建议您采用“自定义指令”方式。我自己为这种情况编写了一个这样的自定义指令。 (http://liviutrifoi.wordpress.com/2013/10/19/angular-custom-validation-with-business-rules/)

我怀疑您正在使用的列表绑定到来自控制器的数组。如果是这种情况,您可以在控制器中定义一个“验证规则”(请参阅​​我的文章),它迭代数组并返回真/假以及错误消息。然后,您将在列表中放置一个验证器指令并使用 a 来显示错误消息。 也许有帮助。

【讨论】: