问题标签 [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.
angularjs - 具有 ng-repeat 验证的 AngularJS 多种表单
我使用 ng-form 作为父表单和子 mg-forms 以使用 ng-repeat 进行验证。
并像这样进行验证:
(这是一个非常简单的例子,对于不同的输入类型和不同的名称,我有更多不同的子表单,例如 input[text] 被命名为 TextForm,input[numeric] 是 NumericForm 等)
如果只有在现场,一切都会按预期工作。但是如果 ng-repeat 生成多个字段,验证只会触发最后一个子表单,其他的会被忽略。
有没有办法循环遍历所有子表单来检查其中一个是否无效?
另外,我正在标记所有未填写的必填字段,如下所示:
因此,如果我的字段是这样完成的:
即使有许多同名的子表单,它也会标记所有子表单。
也许我可以对无效字段做类似的事情?虽然尝试了很多东西,但没有任何效果......
angularjs - 指令中 ng-form 的状态不会传播到外部形式
我有一个 myNumber 指令,其中包含几个围绕输入的嵌套 ng-forms。输入的 ng-required 属性设置为 true 和某个 ng-pattern。问题是输入的状态(例如 ng-valid-required、ng-invalid-pattern)传播到指令内的 ng-forms。所以他们得到与输入本身相同的状态,这是想要的行为。但是,一旦在指令本身之外,指令周围的 ng-form 就不会获得内部 ng-forms 的状态。
虽然 input 和 ng-forms inside 指令具有类似 ng-valid-required ng-dirty ng-invalid ng-invalid-pattern 的状态,但 outerForm 是 ng-pristine ng-valid。
这是正常行为吗,AngularJS 是这样工作的,还是有解决方法来获取指令之外的状态?
angularjs - 将 AngularJS 嵌套表单设置为提交
我有一个嵌套的 AngularJS 表单,如下所示:
这是 childForm.html
由于与问题无关的原因,我无法合并父表单和子表单 - 它们需要是两个单独的文件。
现在,当用户单击提交按钮时,验证正确地应用于 parentForm 和 childForm。但是,只有父表单的 $submitted 标志设置为 true,这是有问题的,因为我使用它来触发某些错误消息的显示。我不希望子表单检查父表单是否为 $submitted,因为它们是两个单独的文件。我想到的唯一选择是在子表单上调用 submit() 方法 $setSubmitted() ,这很尴尬,因为现在父表单需要直接引用子表单。有没有更好的方法将子表单的 $submitted 设置为 true?
javascript - AngularJS:如何从另一个输入值设置一个输入值并让它通过验证,就好像它是用户输入的一样?
我正在使用 angular 1.3.0rc2,并且我正在尝试设置一个输入字段,在模糊时设置另一个输入字段,就好像它是用户输入的一样。
如果我尝试设置的输入上只存在一个同步验证器,并且没有去抖动或异步验证器,那么当我执行以下操作时,事情似乎总是按预期工作:
但是,当我尝试设置的输入上存在异步验证器或去抖动,并且我尝试设置的输入处于当前无效状态时,事情似乎没有按预期工作。
我创建了以下 plunkr 来展示我的困境。尝试设置“全名”的值,看看用户名字段会发生什么,我也想在全名字段的模糊中设置它。当用户名字段处于无效状态时,更改全名的值然后从字段中删除焦点不会像我预期的那样更新用户名。
http://plnkr.co/edit/h1hvf79W8ovqAlNLpBvS
所以,我的问题是,我如何设置一个输入字段,使其能够可靠地工作,并且就像用户自己输入了这个新输入一样(从而运行验证器并相应地更新模型值)?
angularjs - Angular - 强制 ng-form $invalid
Angular 有一堆用于表单验证的规则,但我找不到任何文档来添加要验证的其他规则。
示例:用户必须输入他们的电子邮件,并在第二个字段中确认他们的电子邮件。
有没有一种 Angular 的方式来添加规则,比如:if (email !== confEmail) { form.$invalid = true, etc.. }
不污染我的控制器?
编辑:找到我要找的东西。看起来它是 Angular 1.3 的新手 :) http://www.yearofmoo.com/2014/09/taming-forms-in-angularjs-1-3.html
指导您添加新的 $validator 指令的教程
angularjs - 如何正确处理 Angularjs 中的嵌套表单
我正在使用 angularjs 作为我的网络应用程序的前端。我目前有一个评论视图,其中包含多个回复和编辑表单(由于 ng-repeat)。我如何重写下面的代码,以便可以将表单验证适当地应用于每个表单(当前代码仅显示用于回复评论的表单)。我曾尝试使用 ng-form,但没有成功。
angularjs - 提交时未获取使用 ng-repeat 生成的字段值
表单提交模板。此页面将显示表单模板。最初它显示标题,全名。单击“添加标签”链接会生成用于输入标签的新输入字段。
提交时,RequestPayload 中不包含字段 input(story.tag)
脚本:- app.js
angularjs - 在异步验证器承诺待处理时考虑表单无效
我有一个异步验证器:
表格模板:
myValidator
问题:我希望我的随附表格在承诺未决期间无效。
我知道在异步验证器挂起时使表单无效的两种方法,但它们既冗长又/或笨拙。
我不喜欢变通方法 1,因为我将另一个验证器 ( async
) 标记为无效,这可能会产生意想不到的副作用,我不喜欢变通方法 2,因为我无法再单独信任form.$valid
它。
有谁知道一个干净的解决方案?
javascript - 如何获取 ng-form 中的所有元素
是否可以像使用表单一样获取 ng-form 中的所有元素?
为了:
这有效:
但对于:
这都不是:
也不是这个:
似乎工作。他们返回未定义。
有没有办法用 ng-form 来获取它的所有元素?