我正在尝试验证 angularjs 中的电子邮件字段,如下所示:
<input type="email" ng-model="email" class="form-control" name="email" ng-required="true" placeholder="Email Address">
<span ng-show="loginForm.email.$touched && loginForm.email.$invalid">A valid email is required</span>
这一切都按预期工作,但由于用户键入“. 然后在用户继续输入时隐藏。因为电子邮件@电子邮件。无效,但 email@email.com 有效。
问题是验证发生得太快,在用户完成输入之前。
我试图通过使用 $touched 标志来解决这个问题,但它仅在用户第一次输入电子邮件时解决。当他们回去更正电子邮件时,他们最终会在键入“。”时弹出错误消息。或域名中的“-”。
有没有人以某种方式解决了这个问题?