【发布时间】:2019-10-15 13:26:24
【问题描述】:
我的表单验证允许空字符串时遇到问题。 required 有效,但允许用户单击空间。我在网上找到的解决方案是使用 ng-pattern pattern=".*[^ ].*" 但由于某种原因它不适用于textarea。如果用户复制并粘贴 html 页面 ng 模式会引发错误。奇怪的是,当我将 textarea 更改为输入字段时,它工作正常。解决此问题的正确解决方案是什么。它允许用户粘贴某些内容,但是当我复制整个 html 页面并将其粘贴到 textarea 以进行测试时,我无法确定导致错误的原因。似乎中间的间距导致了它。 StackBlitz:https://stackblitz.com/edit/angular-nhvgf1?file=src/app/hero-form/hero-form.component.html
这是我粘贴在不应引发错误的文本区域中的内容:<button type="submit" class="btn btn-success" [disabled]="!heroForm.form.valid">Submit</button>
<button type="button" class="btn btn-default" (click)="newHero(); heroForm.reset()">New Hero</button>
<i>with</i> reset
<form (ngSubmit)="onSubmit()" #heroForm="ngForm">
<div class="form-group">
<label for="name">Name</label>
<textarea type="text" class="form-control" id="name"
required
pattern=".*[^ ].*"
[(ngModel)]="model.name" name="name"
#name="ngModel"></textarea>
<div [hidden]="name.valid || name.pristine"
class="alert alert-danger">
Name is required
</div>
</div>
<button type="submit" class="btn btn-success" [disabled]="!heroForm.form.valid">Submit</button>
<button type="button" class="btn btn-default" (click)="newHero(); heroForm.reset()">New Hero</button>
<i>with</i> reset
<button type="button" class="btn btn-default" (click)="newHero()">New Hero</button>
<i>without</i> reset
</form>
【问题讨论】:
-
'required 效果很好,但如果用户单击空格按钮,表单会接受它。'你想保留这个空间吗?有时最好修剪()它,因为开始时的空格是无用的。
-
只要该字段不为空。问题是空间,没有别的
-
这似乎可以@AndrewAllen 运行一些测试,现在你介意解释一下。
-
它在 stackblitz 中运行,但由于某些奇怪的原因,它冻结了我的本地应用程序
-
你要求空,但有一个空间不是空的......同样,有时最好立即修剪起始空间,因为它没用。
标签: html angular validation templates