【发布时间】:2018-03-21 21:48:53
【问题描述】:
我在 Angular 中显示 maxlength 属性的错误消息时遇到了一些问题。
问题
由于 maxlength 属性不允许超过指定数量的字符,我无法显示我的错误消息。有什么方法可以关闭默认行为(允许用户输入更多字符),以显示我的错误消息。
文本区域代码
<textarea maxlength="10"
[(ngModel)]="title.value"
#title="ngModel"></textarea>
Angular 验证代码
<div *ngIf="title.errors && (title.dirty || title.touched)"
class="alert alert-danger">
<div [hidden]="!title.errors.maxlength">
Only 10 characters allowed.
</div>
</div>
如果您希望我提供任何其他信息,请告诉我。
【问题讨论】:
-
title.errors中的标题是什么?你在某处声明过吗?.. -
title 指的是 textarea 的 ngModel。我忘记输入该信息了。
-
您是否在表单标签中使用了“novalidate”属性?
-
如果您使用 maxlength ,您将不需要显示错误消息,因为您不允许写入超过 10 个字符,我认为即使输入包含更多字符,title.errors 也不会包含任何错误除了 maxLength ,你可以使用响应式表单来验证你的表单控件。
-
title.errors.maxlength 工作正常。我加载到我的应用程序中的一些内容已经包含了 10 多个字符。当我删除一个时,我会收到消息。问题是该属性不允许我输入更多内容。我想显示错误消息,以便用户理解为什么不允许他们输入超过指定的限制。
标签: forms angular validation textarea maxlength