当前位置: 首页 > 面试题库 >

使用AngularJS在表单中进行动态验证和命名

高吉星
2023-03-14
问题内容

我有这种形式:http :
//jsfiddle.net/dfJeN/

如您所见,输入的名称值是静态设置的:

name="username"

,则表单验证可以正常工作(添加一些内容并从输入中删除所有文本,必须显示一个文本)。

然后,我尝试动态设置名称值:http :
//jsfiddle.net/jNWB8/

name="{input.name}"

然后我将其应用于我的验证

login.{{input.name}}.$error.required

(此模式将在ng-repeat中使用),但我的表单验证已损坏。它在浏览器中已正确解释(如果检查元素,我看到login.username。$
error.required)。

任何想法 ?

编辑:在控制台中记录范围后,似乎

{{input.name}}

表达式不是插值的。我的表单是{{input.name}}属性,但没有用户名。

更新:由于1.3.0-rc.3 name =“ {{input.name}}”“可以正常工作。
请参阅#1404


问题答案:

您不能那样做。

假设您要执行的操作是使用ng-repeat之类的元素向表单中动态添加元素,则需要使用嵌套的ng-
form
来验证这些单独的项目:

<form name="outerForm">
<div ng-repeat="item in items">
   <ng-form name="innerForm">
      <input type="text" name="foo" ng-model="item.foo" />
      <span ng-show="innerForm.foo.$error.required">required</span>
   </ng-form>
</div>
<input type="submit" ng-disabled="outerForm.$invalid" />
</form>

令人遗憾的是,这并不是Angular的功能齐全的功能。



 类似资料:
  • 本文向大家介绍AngularJS使用angular-formly进行表单验证,包括了AngularJS使用angular-formly进行表单验证的使用技巧和注意事项,需要的朋友参考一下 当验证表单中有很多字段时,这时候可能希望把html的生成以及验证逻辑放到controller中,在页面,也许是这样的: 然后,在controller中定义各个字段以及验证。angular-formly就是为这个需

  • 问题内容: 我正在尝试验证从后端端点给我的一些表单字段… 因此基本上,元素是在内动态创建的。因此,属性也被动态添加,如,等… 但是,由于该属性是动态添加的,因此当我尝试验证它时,例如: 它不返回任何内容,因为在这一点上,它不知道是什么。 我创建了一个jsFiddle来演示该问题:http : //jsfiddle.net/peduarte/HB7LU/1889/ 任何帮助或建议将不胜感激! FAN

  • 本文向大家介绍AngularJS实现表单手动验证和表单自动验证,包括了AngularJS实现表单手动验证和表单自动验证的使用技巧和注意事项,需要的朋友参考一下 AngularJS的表单验证大致有两种,一种是手动验证,一种是自动验证。 一、手动验证 所谓手动验证是通过AngularJS表单的属性来验证。而成为AngularJS表单必须满足两个条件: 1、给form元素加上novalidate="no

  • 本文向大家介绍AngularJS手动表单验证,包括了AngularJS手动表单验证的使用技巧和注意事项,需要的朋友参考一下 所谓手动验证是通过AngularJS表单的属性来验证,而成为AngularJS表单必须满足两个条件: 1、给form元素加上novalidate="novalidate"; 2、给form元素加上name="theForm", 如下: ● 给form加上novalidate=

  • 本文向大家介绍AngularJS自动表单验证,包括了AngularJS自动表单验证的使用技巧和注意事项,需要的朋友参考一下 AngularJS的另外一种表单验证方式是自动验证,即通过directive来实现,除了AngularJS自带的directive,还需要用到angular-auto-validate这个第三方module。 有关angular-auto-validate: 安装:npm i

  • 如果您不得不跟浏览器提交的表单数据打交道,视图函数里的代码将会很快变得 难以阅读。有不少的代码库被开发用来简化这个过程的操作。其中一个就是 WTForms , 这也是我们今天主要讨论的。如果您发现您自己陷入处理很多表单的境地,那您也许 应该尝试一下他。 要使用 WTForms ,您需要先将您的表单定义为类。我建议您将应用分割为多个模块 (大型应用) ,这样的话您仅需为表单添加一个独立的模块。 挖掘