【发布时间】:2020-02-18 18:11:06
【问题描述】:
我正在为我的客户端应用程序使用 Angular 8。 当用户插入错误的输入时,我希望在用户的输入框下显示一条错误消息。我在我的 HTML 中使用它:
<!-- Score input -->
<div class="form-group">
<label for="score">Score</label>
<input type="number" class="form-control"
placeholder="0.0 ÷ 10.0"
min="0.0" max="10.0" step="0.1" name="score"
id="score"
[(ngModel)]="model.score"
#score="ngModel">
<div [hidden]="score.valid" class="alert alert-danger">
Insert a value between 0.0 and 10.0
</div>
</div>
如果用户输入“asdf”而不是“6.7”之类的数字,我希望它会显示出来。但它永远不会出现。我尝试删除 [hidden]="score.valid" 并正确显示。即使我设置了所有这些属性,为什么 Angular 仍将“asdf”视为有效输入:type="number" min="0.0" max="10.0" step="0.1"?
【问题讨论】:
-
如果输入类型是数字,怎么可能输入字符串“asdf”?
-
@NicholasK 这是个好问题……我不知道!我会发图片,等等!
-
您能否包含一个非常简单的堆栈闪电战,而不是发布一张图片进行复制?
-
@NicholasK:我相信这是设计使然。我可以在任何
<input>字段here 中输入文本。 -
请看bug report 1398528。因此,例如,Chrome 不允许使用非数字字符,但 Firefox 允许。
标签: html angular validation