required和ng-required(表单验证)之间的区别是什么?
required
ng-required
AngularJS的表单元素寻找required属性来执行验证函数。ng-required允许你根据布尔测试设置required属性(例如,只需要字段B - 比如说,一个学号 -如果字段a有某个值- 如果你选择了“学生”作为选项)
例如,<input required>和<input ng-required="true">本质上是相同的东西
<input required>
<input ng-required="true">
如果你想知道为什么是这样的,(而不仅仅是<input required="true">或<input required="false">),这是由于HTML的局限性——required属性没有相关的值——它的存在仅仅意味着(根据HTML标准)元素是必需的——所以angular需要一种方法来设置/取消必需的值(required="false"将是无效的HTML)
<input required="true">
<input required="false">
required="false"
我想为蒂亚戈的回答做一个插件:
假设你正在使用ng-show隐藏元素,并在同一元素上添加required属性:
ng-show
<div ng-show="false"> <input required name="something" ng-model="name"/> </div>
将抛出一个错误,类似于:
name= "无效的窗体控件不可聚焦
这是因为你不能在hidden元素上强加required验证。使用ng-required可以更容易地进行有条件地适用所需的验证,这非常棒!!
hidden
HTML属性 required="required"是一个语句,告诉浏览器为了使表单有效,这个字段是必需的。(required="required"是XHTML表单,只使用required是等效的)
required="required"
角属性 ng-required="yourCondition"表示“isRequired(你的条件)”,并根据你的条件为你设置HTML属性动态。
ng-required="yourCondition"
还要注意HTML版本令人困惑,它是不可以写一些有条件的东西,如required="true"或required="false",只有属性的存在才重要(present表示true) !这就是Angular帮助你使用ng-required的地方。
required="true"