问题标签 [angularjs-ng-form]

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 回答
708 浏览

html - 访问子组件的表单进行验证

我有一个 Angular 2 应用程序,其中我有一个包含树子组件的主组件。

在我的一个子组件(我们称之为 user_input)中,我有一个带有用户输入的表单。在我的主组件中,我有一个按钮,需要检查我的子组件表单是否有效,从而启用它。

我试图通过访问它。(来自master.view.html)

但是由于我的 user_input 表单在我验证我的主人时没有初始化,这会引发“类型未知”的异常。

有没有聪明的方法来解决这个问题?我有两个共享的服务,但我不想为此使用它。

提前致谢!

[更新]

我在 ngSwitch 中有我的子元素。

一旦我把它移出来,错误就解决了。因为我需要它在 ngSwitch 中,所以我使用了下面提供的解决方案

0 投票
2 回答
3126 浏览

javascript - 在 Angular 中使用带有 OR 和 NOT 条件的 ng-show

是否可以基于两个条件使用 ng-show,我猜在这种情况下是 3 个条件。我知道我可能可以使用函数或指令来执行此操作,但它是在使用 ng-repeat 加载视图并将数据传播到动态生成的表单元素时。此时将条件添加到 ng-show 会更容易,因为实际输入未标记为无效,并且表单本身仍将提交为有效。当表单首次加载动态创建的表单中的最后一个元素时,会显示错误消息,就好像它是无效的一样,直到 $touched = true 并且 $veiwValue 更改。

为简单起见,我的 ng-show 如下所示:

这将在无效条目和提交表单时显示错误消息。但是,它还会在表单加载时显示错误消息(甚至不应该有错误)。并且只是在最后一个输入上动态添加到表单中。

我想做的是这样的:

我什至不知道这是否可能,或者一旦视图完全加载并且数据已添加到模型中,是否可以调用函数来修复验证。有什么建议么?

这是用于此的整个部分:

0 投票
0 回答
317 浏览

validation - 如何引用表单的字段以在 angular2 中使用 NgForm、NgModel 类添加验证器?

我想通过Angular2中的验证器向表单的字段添加一些验证

  • 我将ngForm绑定到这样的表单:

#form="ngForm"

  • 对于我绑定ngModel的字段:

#field="ngModel", [(ngModel)]="model.field" type="text" name="field" placeholder="field"

新的表单 api建议使用 ngForm 和 ngModel,但是 angular.io 文档中没有关于如何使用Validators的文档。

对 NgModel 的 api 引用中,有像 validator : ValidatorFnasyncValidator : AsyncValidatorFn

但我不知道如何引用组件类中的字段来添加验证器

0 投票
1 回答
7203 浏览

angular - Angular 2表单验证不起作用

我有一个 Angular 2 应用程序 (RC.4),但我遇到了表单验证问题。

我的模板中有以下表单代码。

如您所见,我将表单元素命名并将其设置为 ngForm ,然后在输入中包含所需的属性,最后在提交按钮上我说 [disabled]=!modalForm.form.valid 但是由于某种原因,表单总是即使所需的输入为空,也被标记为有效。我在这里想念什么?

0 投票
2 回答
1236 浏览

angularjs - AngularJS 表单验证:通过 ui.router 状态更改 $dirty 值更改

我的用例:

我有一个使用 ui-router 的多步骤表单,如下面的 plunkr 所示。我使用 ng-form 来验证 AngularJS 提供的信息,例如 $valid、$dirty 等。

每次单击“下一部分”按钮后,我将表单数据发送到服务器以检索它,以防用户在完成之前退出表单。

如果用户两次提交第一步,我只发送编辑后的数据(如果 $dirty 值为 true)。所有这些都不在 plunkr 中,我选择向您展示一个简单的表单,但我的表单可以包含一百个字段(单选、复选框、输入、选择等)。

重现问题的步骤(plunkr):

  1. 填写步骤 1 并转到下一部分
  2. 选中 Xbox 收音机并单击数字返回第 1 步 myMultiStepForm.interests.xbox.$dirty = true
  3. 回到第 2 步 myMultiStepForm.interests.xbox.$dirty = false

为什么 $dirty 值改为 false?我猜这是因为<ng-form>再次显示并且所有验证数据都被重置。

有没有办法避免这种情况?或者可能不是<ng-form>处理字段子集的验证?

这是 plunkr:http ://plnkr.co/edit/WclqVgiBvUXlsGdSCcj0?p=preview

0 投票
0 回答
664 浏览

angularjs - $invalid 在 ng-if 条件下不起作用

在 Angular 1.5 中,我有以下设置:

这是逻辑:

  1. 起初,只有区域列表是可见的。
  2. 选择区域后,将显示区域列表,其中包含来自所选区域的区域列表。
  3. 选择区域后,会出现房屋列表。

到目前为止,一切都很好。事情奏效了。唯一的问题是当我更改区域时,会发生以下情况:

  1. 区域列表发生变化,并且由于 ngModel 无法匹配任何新选项,因此区域选择器现在未设置。这按预期工作,但是......
  2. 尽管需要选择器,但房屋列表不会消失territory,因此区域字段应该是无效的。
0 投票
1 回答
929 浏览

angularjs - 使用 Ng 模型进行 Angular 表单验证

ng-model问题:如果我无法命名表单及其元素,如何仅使用 显示验证错误。

我有一个 html 表单来收集信用卡详细信息。为了防止信用卡数据接触到我的服务器,我无法命名表单元素。所以我的表格看起来像:

通常在 Angular 中,我曾经使用表单元素名称检查验证,例如:

但是由于我无法命名表单及其元素,如何仅使用 ng-model 来显示验证错误?因为,以下不起作用:

我正在使用 Angular v1.4.8。

0 投票
1 回答
2750 浏览

javascript - ng-repeat 内的 ng-form 和 ng-repeat 外的提交按钮

我有这个代码:

控制器:

问题是我只能验证 ng-repeat 和 ng-form 中的表单输入,并且我需要在该 html 块之外触发事件,也许我只是菜鸟(第一次使用 angular1 验证)。我会很感激一些帮助。提前致谢。

0 投票
2 回答
1401 浏览

javascript - Angular - 无法验证单选按钮的形式

我有一个form只有radio按钮,form必须在提交前进行验证(用户必须选择一些东西)。用户选择单选按钮后,应使用ngclass. 我有两个问题:
1. 由于某种原因,默认情况下选择了最后一个选项。
2. 我无法获取表单验证属性。当我在上面选择内容时,数据不会刷新。

plunkr

JS:

HTML:

编辑这是表单输出。永远不会更新

0 投票
2 回答
5529 浏览

angular - Angular 4. 表单模块的问题

我从这里举了一个例子:Angular 4 Forms Directive (ngForm) 并得到错误:没有针对 ngModel 和 ngForm 的指令。似乎指令不包括在内。

文件在这里:

模块文件:login.module.ts

组件文件:login.component.ts

知道有什么问题吗?