280

requiredng-required(表单验证)有什么区别?

4

3 回答 3

423

AngularJS 表单元素寻找required属性来执行验证功能。ng-required允许您required根据布尔测试设置属性(例如,仅需要字段 B -例如,学生编号- 如果字段 A 具有特定值 -如果您选择“学生”作为选项

举个例子,<input required><input ng-required="true">本质上是一样的

如果您想知道为什么会这样(而不仅仅是 make <input required="true">or <input required="false">),那是由于 HTML 的限制——该required属性没有关联的值——它的存在意味着(根据 HTML 标准)该元素是必需的——所以角度需要一种方法来设置/取消设置所需的值(required="false"将是无效的 HTML)

于 2013-05-20T11:47:38.180 回答
78

I would like to make a addon for tiago's answer:

Suppose you're hiding element using ng-show and adding a required attribute on the same:

<div ng-show="false">
    <input required name="something" ng-model="name"/>
</div>

will throw an error something like :

An invalid form control with name='' is not focusable

This is because you just cannot impose required validation on hidden elements. Using ng-required makes it easier to conditionally apply required validation which is just awesome!!

于 2014-09-02T13:05:59.350 回答
17

HTML 属性 是一条语句,required="required"告诉浏览器该字段是必需的,以便表单有效。(required="required"是XHTML的形式,只是使用required是等价的)

Angular 属性 表示“ ng-required="yourCondition"isRequired(yourCondition)”并根据您的条件为您动态设置 HTML 属性。

另请注意,HTML 版本令人困惑不可能写出诸如required="true"or之类的条件required="false",只有属性的存在才重要(present 表示 true)!这就是 Angular 帮助您解决问题的地方ng-required

于 2015-12-15T14:13:22.880 回答