Как сделать так, чтоб окно не закрывалось, пока не будут введены корректные данные
Не являюсь специалистом в java script, потому нужна помощь
Пишу форму входа на сайт, которая появляется в всплывающем окне. Есть проблема - если введены неправильные данные, то окошко закрывается. Как сделать так, чтоб окно не закрывалось, пока не будут введены корректные данные?
Контроллер
public async Task<ActionResult> Lending(LoginVM loginVM)
{
if (!ModelState.IsValid)
{
ModelState.AddModelError("emptyField", "Введите данные");
return View(loginVM);
}
bool isUser = false;
using (ChekitDB chekitDB = new ChekitDB())
{
if (await chekitDB.BlackList.AnyAsync(x => x.Login == loginVM.UserName))
{
ModelState.AddModelError("ban", $"Ваш аккаунт заблокирован, причина - {chekitDB.BlackList.Select(x => x.Reason).First()}");
return View(loginVM);
}
}
using (ChekitDB chekitDB = new ChekitDB())
{
if (await chekitDB.Users.AnyAsync(x => x.Login == loginVM.UserName && x.Password == loginVM.Password))
{
isUser = true;
}
if (!isUser)
{
ModelState.AddModelError("entryError", "Ошибка логина или пароля");
return View(loginVM);
}
else
{
FormsAuthentication.SetAuthCookie(loginVM.UserName, loginVM.RememberMy);
return Redirect(FormsAuthentication.GetRedirectUrl(loginVM.UserName, loginVM.RememberMy));
}
}
}
Всплывающее окно во вьюхе
<div id="Login">
<h3>Добро пожаловать</h3>
@using (Html.BeginForm("Lending", "Home"))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group col-lg-12 col-md-12 col-sm-12 loginLabel">
@Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label" })
<div class="">
@Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "login-form", @id = "userLogin" } })
@Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
@Html.ValidationMessage("emptyField", new { @class = "text-danger" })
@Html.ValidationMessage("entryError", new { @class = "text-danger" })
@Html.ValidationMessage("ban", new { @class = "text-danger" })
</div>
</div>
<div class="form-group col-lg-12 col-md-12 col-sm-12">
@Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label" })
<div class="">
@Html.PasswordFor(model => model.Password, new { @class = "login-form", @id = "userPass" })
@Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
@Html.ValidationMessage("emptyField", new { @class = "text-danger" })
@Html.ValidationMessage("entryError", new { @class = "text-danger" })
</div>
</div>
<div class="form-group col-lg-12 col-md-12 col-sm-12">
@Html.LabelFor(model => model.RememberMy, htmlAttributes: new { @class = "control-label" })
<div class="">
<div class="checkbox">
@Html.EditorFor(model => model.RememberMy)
@Html.ValidationMessageFor(model => model.RememberMy, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="form-group col-lg-12 col-md-12 col-sm-12">
<div class="">
<input id="inputLogin" type="submit" value="Войти" class="btn btn-success" />
</div>
</div>
</div>
}
<span id="Logint_Close" class="close">ₓ</span>
</div>
<div id="myOverlay"></div>
Код JS в всплывающем окне
$('a.login').click(function (event) {
event.preventDefault();
$('#myOverlay').fadeIn(297, function () {
$('#Login')
.css('display', 'block')
.animate({ opacity: 1 }, 198);
});
});
$('#Logint_Close').click(function () {
$('#Login').animate({ opacity: 0 }, 198, function () {
$(this).css('display', 'none');
$('#myOverlay').fadeOut(297);
});
});