ユーザー登録フォームとログインフォームがあります。明らかに登録フォームで検証したいのですが、ログインフォームで検証したくありません。ログインフォームのJSで検証することに気づきました。IEは、ユーザーが5を超える長さのパスワード(つまり、検証で設定したもの)を入力するまで、フォームを送信しようとさえしません。これを無効にするにはどうすればよいですか?
ログインフォーム:
@using (Html.BeginForm("Login", "Users", FormMethod.Post, new { @class = "well"})) {
<legend>Login</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Email, new { @placeholder = "Email" })
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Password)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Password, new { @placeholder = "Password" })
</div>
<label class="checkbox">
@Html.CheckBoxFor(model => model.HasRememberMeOn) Remember me
</label>
if (ViewData["ErrorMessage"] != null)
{
<p>@ViewData["ErrorMessage"]</p>
}
<p>
<input type="submit" value="Login" />
</p>
}
モデル:
[Required]
[StringLength(20, MinimumLength=5)]
[Username(ErrorMessage="Username must: Contain at least one letter, no spaces, no special characters")]
public string Username { get; set; }
[NotMapped]
[StringLength(25, MinimumLength = 5)]
public string Password { get; set; }
[Required(ErrorMessage="Password is required")]
public string HashedPassword { get; set; }
[Required]
[StringLength(50, MinimumLength = 3)]
public string Email { get; set; }
[NotMapped]
[Compare("Email", ErrorMessage = "Your emails don't match")]
[DisplayName("Confirm email")]
public string Email2 { get; set; }
public Boolean IsActivated { get; set; }
[DisplayName("Date joined")]
public DateTime DateCreated { get; set; }
[Required]
[StringLength(50, MinimumLength = 2)]
[DisplayName("Real name")]
public string Name { get; set; }