ASP.NET MVC4 プロジェクトでデータ注釈を使用して、電子メール フィールドと電話フィールドでクライアント側の検証を実行しています。電子メールはクライアントで正常に検証されていますが、電話は検証されていません。無効な文字を入力でき、フォームの送信時にのみ警告が表示されます (文字が入力された直後ではなく)。
モデルでは:
[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; }
ビューでは、正しいスクリプト参照を含めていると思います:
<script type="text/javascript" src="~/Scripts/jquery.validate.min.js" ></script
<script type="text/javascript" src="~/Scripts/jquery.validate.unobtrusive.min.js" ></script>
..そしてhtmlヘルパーを使用します(明確にするためにここでは省略したクラス属性を適用しているため、EditorForではなくTextBoxForを使用しています)
@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" })
私は何が欠けていますか?