AngularJS在非必填字段中显示有关无效值的消息

时间:2014-02-03 13:53:29

标签: javascript angularjs

我有下一个标记:

<input type="number" name="test" ng-model="data.test" step="any" ng-pattern="/^\d*[\.|,]?\d*$/" />
<span class="error" ng-show="!editForm.test.$valid || editForm.test.$error">Please, enter valid decimal number, such as 15.6</span>

当我在此输入标记中编辑值时,未显示有关无效值(在span标记中)的消息,并且表单提交值将设置为null。当我写入此输入的必需属性时,显示了消息,但我不需要此字段。如何强制AngularJS显示没有必需属性的错误消息?

修改

抱歉,$ error无法正常工作 2. JSFiddle:http://jsfiddle.net/9w2HZ/。输入第一个字段非数字,在下一个非数字中输入,然后您可以看到不同的数字。

1 个答案:

答案 0 :(得分:0)

在你的jsFiddle中,在第一种情况下,奇怪的是如果你使用type =“text”,那么验证错误会正确显示,而在开发人员工具中,你会看到ng-invalid-pattern被添加到输入中。

如果您查看开发人员工具,在第二种情况下,如果您给出任何无效的数字,则将ng-invalid-required类添加到输入而不是ng-invalid-pattern。

如果没有使用type = number的具体原因,也许只需使用type = text作为输入控件。