需要和ng-required有什么区别?

时间:2013-05-20 11:37:58

标签: angularjs required

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

3 个答案:

答案 0 :(得分:415)

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

例如,<input required><input ng-required="true">基本相同

如果您想知道为什么这就是这种方式,(而不只是制作<input required="true"><input required="false">),这是由于HTML的限制 - {{ 1}}属性没有关联值 - 它仅仅是存在意味着(根据HTML标准)元素是必需的 - 所以angular需要一种方法来设置/取消设置所需的值(required将是无效的HTML)

答案 1 :(得分:77)

我想为tiago's answer添加一个插件:

假设您使用ng-show隐藏元素并在其上添加required属性:

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

会抛出类似的错误:

  

名称为&#39;&#39;的无效表单控件不可专注

这是因为您无法对required元素进行hidden验证。使用ng-required可以更轻松地有条件地应用所需的验证,这真是太棒了!

答案 2 :(得分:17)

HTML属性 required="required"是一个语句,告诉浏览器该表单是必需的,以使表单有效。 (required="required"是XHTML表单,仅使用required等效)

Angular属性 ng-required="yourCondition"表示&#39; isRequired(yourCondition)&#39;并根据您的情况为您设置HTML属性动态

另请注意 HTML版本令人困惑 可能会写出像required="true"required="false"这样的条件,只有存在属性很重要(现在意味着真实)!这是Angular通过ng-required帮助您的地方。