【问题标题】:AngularJS show message about non-valid value in non-required fieldAngularJS 在非必填字段中显示有关无效值的消息
【发布时间】:2023-03-25 15:42:01
【问题描述】:

我有下一个标记:

<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>

当我在这个输入标签中编辑值时,关于无效值(在跨标签中)的消息不会显示,并且在表单提交后值将被设置为空。当我为此输入写入必需属性时,会显示消息,但我不需要此字段。如何强制 AngularJS 在没有必需属性的情况下显示错误消息?

编辑:

1. 抱歉,$error 不能正常工作
2. JSFiddle:http://jsfiddle.net/9w2HZ/。在第一个字段输入非数字,在下一个非数字也输入,然后你会看到不同的。

【问题讨论】:

  • 请添加您的问题的 plunkr 或 jsfiddle。

标签: javascript angularjs


【解决方案1】:

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

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

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

【讨论】:

  • 我需要使用 type="number" 然后,在第一个字段中有 ng-valid 和 ng-valid-pattern 类,但在字段中我输入了不带数字的字符串表达式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
相关资源
最近更新 更多