2017-09-26 4 views
1

Je crée une page MVC qui utilise la validation Kendo.MVC - Que puis-je faire si je ne veux pas que mon message électronique affiche une erreur lors de l'échec de la validation de l'expression régulière?

J'ai le modèle suivant:

public class ForgotPasswordModel 
{ 
    [Required(ErrorMessage = " ")] 
    public string UserName { get; set; } 

    [Required(ErrorMessage = " ")] 
    [EmailAddress(ErrorMessage = " ")] 
    public string Email { get; set; } 

    public string PhoneNumber { get; set; } 

    [Required(ErrorMessage = " ")] 
    public string Code { get; set; } 
} 

Je ne veux pas mon point de vue pour afficher un message d'erreur pour le champ E-mail. Je veux qu'il affiche uniquement un signe d'exclamation lorsque la validation échoue.

Actuellement, j'ai le code suivant à mon avis:

@model Site.Models.ForgotPasswordModel 

@{ 
    ViewBag.Title = "Forgot Password"; 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge"> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Login</title> 

    <link href="~/Content/Site.css" rel="stylesheet" type="text/css" /> 
    <link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" /> 

    <script src="~/Scripts/jquery-3.1.1.min.js"></script> 
    <script src="~/Scripts/bootstrap.min.js"></script> 

    <link href="~/Content/kendo/kendo.common-material.min.css" rel="stylesheet" /> 
    <link href="~/Content/kendo/kendo.custom.css" rel="stylesheet" /> 
    <link href="~/Content/kendo/custom.css" rel="stylesheet" /> 

    <script src="~/Scripts/kendo/kendo.all.min.js"></script> 
    <script src="~/Scripts/kendo/kendo.aspnetmvc.min.js"></script> 


    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 
    <script src="~/Scripts/jquery.validate.min.js"></script> 
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 

    <style> 
     input[type=text]::-ms-clear { 
      display: none; 
     } 

     input[type=password]::-ms-reveal { 
      display: none; 
     } 

     .errMsg { 
      font-weight: bolder; 
      color: red; 
     } 

     span#UserName_validationMessage, span#Email_validationMessage,span#Code_validationMessage { 
      display: inline-block; 
      width: 160px; 
      text-align: left; 
      border: 0; 
      padding: 0; 
      margin: -20px; 
      background: none; 
      box-shadow: none; 
      color: red; 
     } 

     .k-invalid-msg { 
      display: none; 
     } 
    </style> 

</head> 
<body> 
    <div> 
    </div> 
    <div style="margin-top: 20px;"> 
     <div style="margin: 0 auto; width: 940px; height: 409px; background-image: url('../../Content/images/finance-globe.jpg');"/> 
      @using (Html.BeginForm(null, null, FormMethod.Post, new { id = "ForgotPasswordForm" })) 
      { 
       <div style="margin: 0 auto; margin-top: 20px;"> 
        <table id="ForgotPassword" style="margin: 0" auto;"> 
         <tr style="height:40px;"> 
          <td>@Html.EditorFor(x => x.UserName, new { htmlAttributes = new { @class = "form-control k-textbox checkError", placeholder = "username" } })</td> 
         </tr> 
         <tr style="height:40px;"> 
          <td>@Html.EditorFor(x => x.Email, new { htmlAttributes = new { @class = "form-control k-textbox checkError", placeholder = "email" } })</td> 
         </tr> 
         <tr style="height:40px;"> 
          <td>@Html.EditorFor(x => x.PhoneNumber, new { htmlAttributes = new { @class = "form-control k-textbox", placeholder = "phone number" } })</td> 
         </tr> 
         <tr style="height:40px;"> 
          <td>@Html.EditorFor(x => x.Code, new { htmlAttributes = new { @class = "form-control k-textbox checkError", placeholder = "code" } })</td> 
         </tr> 
        </table> 
       </div> 
      } 
    </div> 
</body> 
</html> 

<script> 
    $(document).ready(function() { 
     $("#ForgotPasswordForm").kendoValidator(); 
    }); 
</script> 

Le modèle et Vue de produire les éléments suivants:

enter image description here

Je ne veux pas un message "Email non valide" à être affiché en cas de validation d'expression régulière échoue.

J'ai juste besoin d'un signe d'exclamation.

Comment puis-je faire cela?

Répondre

0

Pour votre champ de courrier électronique, vous pouvez essayer d'ajouter l'attribut data-email-msg, ce qui permet de personnaliser le message de validation pour une valeur de champ de courrier électronique incorrecte.

Ex: Si vous souhaitez afficher un message vide pour une valeur incorrecte pour id e-mail que vous pouvez faire quelque chose comme:

<input type="email" name="email" id="email" name="email" data-email-msg=""> 

Et si vous voulez personnaliser le required field validation message aussi, vous pouvez ajouter une autre attribut data-required-msg comme ci-dessous:

<input type="email" name="email" id="email" name="email" data-email-msg="" data-required-msg="">