ng-show =“frm.Email。$ error.email”未显示无效电子邮件的错误

时间:2016-05-13 08:11:41

标签: javascript angularjs email

我正在尝试使用angularjs验证在mvc-asp.net中创建一个登录表单,

这是我的代码:

<span style="color:red" ng-show="frm.Email.$dirty || frm.Email.$invalid">
    <span ng-show="frm.Email.$error.required">ایمیل را وارد کنید</span>
    <span ng-show="frm.Email.$error.email">ایمیل وارد شده نامعتبر است</span>
</span>

当我将文本框留空时,出现错误frm.Email.$error.required但是当我输入无效的电子邮件mike.com时,ng-show="frm.Email.$error.email的错误不会出现。为什么?

4 个答案:

答案 0 :(得分:3)

你必须使用

<input type="email">

而不是

<input type="text">

或带有ng-pattern的文本,其中包含您在这种情况下所需的模式。

P.S:不要忘记在表单中使用<form novalidate>以避免HTML5验证并应用您的Angular验证

答案 1 :(得分:2)

好像你正在使用

<input type="text">.

对于电子邮件,您应该使用

<input type="email">.

要验证电子邮件地址,Angular会使用HTML5 validinvalid控件。

答案 2 :(得分:0)

我认为您忘记为输入元素提供ng-pattern属性

答案 3 :(得分:0)

"form.mail.$error.email" //**form-name.input-name.$error.email**

 <form ng-app="" name="form">
 <div>
      <label>e-mail:</label><input type="email" id="mail"name="mail" ng-model="mail">
      <p><div ng-show="form.mail.$error.email">Enter the valid mail id</div></p>
 </div>

在ng-show中我已经检查了验证中的电子邮件.. 表单是指表单标签的名称,邮件是指输入类型名称的电子邮件$ error是指检查错误和电子邮件是指到电子邮件的类型..