E-Mail-Daten Anmerkung Validierung funktioniert, aber Telefon nicht
Ich bin mit data annotations in meinem ASP.NET MVC4-Projekt um clientseitige Validierung auf E-Mail und Telefon-Felder. E-Mail ist erfolgreich die Validierung im client, aber Telefon funktioniert nicht - es erlaubt mir, geben Sie ungültige Zeichen und nur warnt mich nach dem abschicken des Formulars (anstatt sofort nach dem Zeichen eingegeben wird)
Im Modell:
[Required(ErrorMessage = "Email is required")]
[DataType(DataType.EmailAddress)]
[EmailAddress]
[Display(Name = "Email")]
public string Email{ get; set; }
[Required(ErrorMessage = "Mobile is required")]
[DataType(DataType.PhoneNumber)]
[Phone]
[Display(Name = "Mobile number")]
public string Mobile { get; set; }
In der Ansicht, ich glaube, ich bin auch das richtige Skript Verweise:
<script type="text/javascript" src="~/Scripts/jquery.validate.min.js" ></script
<script type="text/javascript" src="~/Scripts/jquery.validate.unobtrusive.min.js" ></script>
..und mit html-Helfer (ich bin mit TextBoxFor eher als "EditorFor" als ich die Anwendung der Klasse Attribute, die ich ausgelassen habe, hier für Klarheit)
@Html.LabelFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
@Html.TextBoxFor(model => model.Email, new { @type = "email" })
@Html.LabelFor(model => model.Mobile)
@Html.ValidationMessageFor(model => model.Mobile)
@Html.TextBoxFor(model => model.Mobile, new { @type = "phone" })
Was bin ich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem ist, dass Telefon-Typ wird einfach nicht unterstützt.
Sehen Telefon geben Sie Unterstützung bei w3schools
Gesucht werden zahlen wie: 0123456789, 012-345-6789, (012)-345-6789 etc.
MVC 4 hat ein eingebautes display-Vorlage für Email-Adresse, aber keine Telefonnummer.
Müssen Sie erstellen eine benutzerdefinierte DisplayTemplate für
[DataType(DataType.PhoneNumber)]
.Fügen Sie die folgende Datei (Sie werden wahrscheinlich haben, um den Unterordner erstellen DisplayTemplates):
Views\Shared\DisplayTemplates\PhoneNumber.cshtml
verwenden "EditorFor" statt TextBoxFor für E-Mail, dann wird es Fehler gibt ok keyup-in E-Mail-Feld.