2017-09-26 1 views
1

Ich erstelle eine MVC-Seite, die Kendo-Validierung verwendet.MVC - Was kann ich tun, wenn der Fehler in meinem E-Mail-Feld nicht angezeigt werden soll, wenn die Validierung des regulären Ausdrucks fehlschlägt?

Ich habe folgendes Modell:

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

Ich will nicht meine Ansicht Fehlermeldung für das Feld E-Mail zeigen. Ich möchte, dass nur Ausrufezeichen angezeigt werden, wenn die Validierung fehlschlägt.

Zur Zeit habe ich den folgenden Code in meiner Ansicht:

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

das Modell und die Ansicht produziert die folgende:

enter image description here

Ich will nicht, „E-Mail ist nicht gültig“ Nachricht an im Falle einer regulären Überprüfung angezeigt werden, schlägt die Validierung fehl.

Ich brauche nur ein Ausrufezeichen.

Wie kann ich das tun?

Antwort

0

Für Ihr E-Mail-Feld können Sie data-email-msg Attribut versuchen Sie, die Art und Weise ist die Validierung Nachricht für falschen E-Mail-Feld-Wert anpassen.

Für ex: Wenn Sie für einen falschen Wert für die E-Mail-ID eine leere Nachricht angezeigt werden Sie so etwas wie tun:

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

Und wenn Sie auch die required field validation message anpassen möchten, dann können Sie eine andere hinzufügen Attribut data-required-msg wie folgt:

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