问题标签 [angularjs-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2987 浏览

javascript - AngularJS 表单验证:$valid 始终为真

我在使用 AngularJS 表单验证时遇到问题。下面是一个简单的两字段表单,唯一的要求是每个字段的数据都是必需的,其中一个是“电子邮件”类型。

问题是,无论我为这两个字段中的任何一个设置什么值,Angular 的 .$valid 总是返回 true 的值,而 $invalid 返回 false 的值。它可以是一个空字段、一个有效/无效的电子邮件地址,或者我选择的字符串。结果是一样的。

因此,提交按钮永远不会被禁用,因为我正在使用

但是,如果我使用控制器中的变量,则提交按钮被禁用

这表明 Angular 正在工作,但我没有在表单控件中正确设置指令。请注意,ng-model 指令似乎已正确应用。

我在它们上尝试了许多不同的代码变体,有些非常绝望,但无济于事。关于同一主题还有其他 SO 问题,但我没有找到任何适用的问题。您可能有的任何建议都会很棒。谢谢。

0 投票
2 回答
2273 浏览

angularjs - 表单验证AngularJs的条件样式

我的电子邮件字段有 minlength、maxlength 和必需的验证。如果这些验证中的任何一个失败,我想添加一个类“有错误”或添加某种样式。任何帮助将非常感激。

0 投票
1 回答
334 浏览

angularjs - 在提交角度之前验证动态表单

我正在使用 ng-repeat 动态创建表单,它们具有一些验证属性(简化版):

基本上我想做的是:

由于表单名称是使用 id 动态创建的,我该如何访问它?当然也欢迎其他方式做同样的事情:)

0 投票
2 回答
1221 浏览

angularjs - 防止异步唯一验证器仅在编辑时验证相同的值?

我有一个 AngularJS 表单,它有一个自定义验证器来检查服务器后端输入值是否唯一。唯一验证由mob-async-validate-unique以下示例中的指令完成。

表格看起来有点像这样:

我想使用相同的表单来添加编辑我放置的模型$scope

一切都很好,除了唯一的验证器会在编辑操作上触发,即使值与原始值相同,然后将唯一验证为false,因为该值已经存在。在以下两种情况下,验证器都会将该字段标记为无效:

  1. 更改字段值,然后将其编辑回原始值
  2. 提交表单而不更改任何内容

实现这一目标的最佳方法是什么?我能想到的天真的方法是,我必须将原始值存储在一个$scope.originalValue变量中,然后在唯一的验证元素上添加一个属性来命名这个变量。在验证器中,我将从 $scope 中读取此值并将其与当前值进行比较,以使验证器在两个值相同时接受它。我将继续执行此操作。

我在几个地方以通用方式使用唯一验证器(是<input>的,为了简单和易读,我没有包含在代码示例中的元素上使用了更多属性)并且需要验证器在其上完全运行拥有并且理想情况下希望将控制器$scope排除在图片之外,以便我可以在任何地方/我想要的任何地方使用自定义异步验证器。

0 投票
0 回答
290 浏览

javascript - 在 AngularJS 中使用动态名称进行验证

这个问题在问题 1 问题 2之前至少被问过两次,但我认为答案不完整很多人使用带有 ng-repeat 的静态名称,这是一个可能的解决方案,但在我的情况下不起作用,因为我需要输入的名称在控制器中将参数传递给另一个指令,一个更好的主意是使用该指令dinamicName,但是我不知道如何显示错误

以下是我的代码示例

指令动态名称:

此代码不显示垃圾邮件

谢谢

0 投票
1 回答
2739 浏览

angularjs - 使用索引位置验证字段

我有几个要动态复制的字段。我正在使用正在完成这项工作的 ng-reapt。但是,验证消息不起作用。这是我所拥有的:

有没有办法使用索引位置显示和验证字段?

上面的代码适用于第一个块,但它会向所有副本显示消息。

0 投票
7 回答
32997 浏览

javascript - 文本输入只允许在 angularjs 中输入整数

我想将 html input[number] 设置<input type="number" />为仅允许整数输入(而不是浮点数)。

基本上,html input[number] 允许 '.' 输入浮点输入,我不希望这样。

有没有一种快速的方法可以在 AngularJS 中完成它?

0 投票
1 回答
1151 浏览

angularjs - 表单加载后AngularJS触发字段验证

我有一组数据字段。它们看起来像这样:

feature.edit 由按钮控制,您可以将数据设为只读或可编辑。每个字段都有一些验证,通常,如果需要,它必须不同于 null。我想在单击编辑并显示输入字段后触发该验证。一种方法是遍历所有输入字段并使用 jQuery trigger("change")。我必须做一些延迟(它需要 Angular 来填充所有字段)。在输入变得可见之后,有什么方法可以触发ng-change或运行onFieldUpdate() ?我试过ng-init,但没有用。

0 投票
1 回答
1403 浏览

javascript - AngularJS 表单保持 $dirty 手动设置每个输入 $pristine

我有一个form[name="mainForm"]包含许多输入的 HTML。当我修改输入时,它$scope.mainForm.$dirty变为真(这是正确的)但是当我setPristine()之前修改过的字段($scope.mainForm.firstName.$setPristine())时,整个表单保持在$dirty状态 - ($scope.mainForm.$dirtytrue)。

我想知道我在哪里做错了。

http://plnkr.co/edit/4ksaQwyKcEV2BoDbiECz?p=preview

如果我输入该firstName字段,然后:

整个表单应该是$pristine因为firstName是唯一被修改的字段但是$scope.mainForm.$dirtytrue.

0 投票
2 回答
1924 浏览

javascript - Angular - 需要 ngModel 并在自定义指令的控制器中使用它,而不是链接功能

谁能告诉我是否可以在自定义 Angular 指令的控制器中要求和使用 ngModel。我试图远离链接功能。我看到大多数示例都使用链接功能,但我认为必须有某种方法可以在指令控制器中使用它?还是只能在链接功能中访问?我见过的一种方法,如下所示,给了我不确定的。不知道有没有别的办法??我正在尝试验证组件并在错误对象上设置无效类。