Estoy tratando de crear un formulario de inicio de sesión en mvc-asp.net con la validación angularjs,

Aquí está mi código :

<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>

Cuando dejo el cuadro de texto vacío, aparece el error frm.Email.$error.required pero cuando ingreso un correo electrónico no válido mike.com no aparece el error de ng-show="frm.Email.$error.email. ¿Por qué?

2
Ehsan Akbar 13 may. 2016 a las 11:11

4 respuestas

La mejor respuesta

Parece que estás usando

<input type="text">.

Para el correo electrónico, debe usar

<input type="email">.

Para validar la dirección de correo electrónico, Angular usa los controles HTML5 valid y invalid.

3
shalu tyagi 13 may. 2016 a las 11:58

Creo que olvidó proporcionar el atributo ng-pattern para el elemento de entrada

0
The Developer 13 may. 2016 a las 08:26
"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>

En ng-show, he verificado el correo electrónico en la validación. formulario se refiere al nombre de la etiqueta del formulario, el correo se refiere al nombre del tipo de entrada correo electrónico $ error se refiere a verificar el error y el correo electrónico se refiere al tipo de el correo electrónico..

0
Guru Rahaventhar N 11 abr. 2017 a las 04:18

Tienes que usar

<input type="email">

En lugar de

<input type="text">

O texto con un ng-pattern que contiene el patrón que necesita en ese caso.

PD: no olvides tener <form novalidate> en tu formulario para evitar las validaciones HTML5 y aplicar tus Validaciones Angulares

3
shalu tyagi 13 may. 2016 a las 11:17