【问题标题】:ng-show="frm.Email.$error.email " doesn't show the error of invalid emailng-show="frm.Email.$error.email " 不显示无效邮件的错误
【发布时间】:2016-09-09 08:03:45
【问题描述】:

我正在尝试使用 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 的错误。为什么?

【问题讨论】:

  • 你能展示你的表格和你的输入吗?

标签: javascript angularjs email


【解决方案1】:

看来你正在使用

<input type="text">.

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

<input type="email">.

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

【讨论】:

    【解决方案2】:

    我想你忘了为输入元素提供 ng-pattern 属性

    【讨论】:

      【解决方案3】:

      你必须使用

      <input type="email">
      

      而不是

      <input type="text">
      

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

      P.S:不要忘记在您的表单中添加 &lt;form novalidate&gt; 以避免 HTML5 验证并应用您的 Angular 验证

      【讨论】:

        【解决方案4】:
        "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 我已经检查了验证中的电子邮件..form 是指表单标签的名称,邮件是指输入类型的名称电子邮件 $error 是指检查错误,电子邮件是指输入电子邮件..

        【讨论】:

        • @jps 感谢您的反馈..!!在 ng-show 我已经检查了验证中的电子邮件.._form_ 指的是 form 标签 的名称,mail 指的是输入类型电子邮件的名称错误和电子邮件是指电子邮件的类型..
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 1970-01-01
        • 1970-01-01
        • 2012-04-23
        • 1970-01-01
        • 1970-01-01
        • 2014-08-08
        相关资源
        最近更新 更多