Bootstrap 模态背景不会消失
Bootstrap modal background won't disappear
所以我有这个 登录 页面使用 Bootstrap
s modal
。但是,在通话结束后,modal
应该会消失。除了黑色背景。我怎样才能确保背景也消失?
我的_Menu.cshtml:
<div id="menu">
<div class="modal fade" id="form_login" role="dialog" aria-labelledby="form_LoginLabel" aria-hidden="true">
<div class="modal-dialog reset">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Login</h4>
</div>
@using (Ajax.BeginForm("SignIn", "Account", new AjaxOptions() { UpdateTargetId = "menu", InsertionMode = InsertionMode.Replace, HttpMethod = "POST", OnSuccess="CloseModal()" }, new { @class = "form-inline", @role = "form" }))
{
<div class="modal-body">
@if(ViewBag.Message != null)
{
<p class="alert alert-warning">@ViewBag.Message</p>
}
<div class="form-group">
<label class="sr-only" for="email">Email</label>
<input class="form-control" type="email" id="email" name="email" placeholder="Enter email" value="" required="required" />
</div>
<div class="form-group">
<label class="sr-only" for="password">Password</label>
<input class="form-control" type="password" id="password" name="password" placeholder="Enter password" value="" required="required" />
</div>
<span id="message-login-loading" class="alert hidden"></span>
<span id="message-login-error" class="alert alert-danger hidden"></span>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success" id="login" ><span class="glyphicon glyphicon-user"></span> Sign in</button>
@Html.ActionLink("Register", "Register", "Account", null, new { @class = "btn btn-primary" })
</div>
}
</div>
</div>
</div>
</div>
帐户控制器:
public ActionResult PartialMenu()
{
var model = ProfileSession.Session;
return PartialView("_Menu", model);
}
public ActionResult SignIn(string email, string password)
{
Login login = loginRep.GetByEmailAndPassword(email, password);
if (login != null)
{
ProfileSession.Session = profileRep.GetById(login.fk_profile);
return RedirectToAction("PartialMenu", "Home");
}
ViewBag.Message("Email or password is incorrect");
return RedirectToAction("PartialMenu");
}
根据 this 的回答,问题是我的 Ajax
调用更新了我的 div
,因此模式不可见。然而,背景是,它无法连接到模态,因此无法像往常一样消失。
我最终使用了
$('.modal-backdrop').remove();
在成功 ajax 调用后,这将删除页面上的所有背景。
请去给Fre的回答投上一票^^
您还可以在按钮上使用数据背景="false" 属性。
这是我的作品。
$('.close').click();
$(document.body).removeClass("模态打开");
$("模态背景").remove();
所以我有这个 登录 页面使用 Bootstrap
s modal
。但是,在通话结束后,modal
应该会消失。除了黑色背景。我怎样才能确保背景也消失?
我的_Menu.cshtml:
<div id="menu">
<div class="modal fade" id="form_login" role="dialog" aria-labelledby="form_LoginLabel" aria-hidden="true">
<div class="modal-dialog reset">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Login</h4>
</div>
@using (Ajax.BeginForm("SignIn", "Account", new AjaxOptions() { UpdateTargetId = "menu", InsertionMode = InsertionMode.Replace, HttpMethod = "POST", OnSuccess="CloseModal()" }, new { @class = "form-inline", @role = "form" }))
{
<div class="modal-body">
@if(ViewBag.Message != null)
{
<p class="alert alert-warning">@ViewBag.Message</p>
}
<div class="form-group">
<label class="sr-only" for="email">Email</label>
<input class="form-control" type="email" id="email" name="email" placeholder="Enter email" value="" required="required" />
</div>
<div class="form-group">
<label class="sr-only" for="password">Password</label>
<input class="form-control" type="password" id="password" name="password" placeholder="Enter password" value="" required="required" />
</div>
<span id="message-login-loading" class="alert hidden"></span>
<span id="message-login-error" class="alert alert-danger hidden"></span>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success" id="login" ><span class="glyphicon glyphicon-user"></span> Sign in</button>
@Html.ActionLink("Register", "Register", "Account", null, new { @class = "btn btn-primary" })
</div>
}
</div>
</div>
</div>
</div>
帐户控制器:
public ActionResult PartialMenu()
{
var model = ProfileSession.Session;
return PartialView("_Menu", model);
}
public ActionResult SignIn(string email, string password)
{
Login login = loginRep.GetByEmailAndPassword(email, password);
if (login != null)
{
ProfileSession.Session = profileRep.GetById(login.fk_profile);
return RedirectToAction("PartialMenu", "Home");
}
ViewBag.Message("Email or password is incorrect");
return RedirectToAction("PartialMenu");
}
根据 this 的回答,问题是我的 Ajax
调用更新了我的 div
,因此模式不可见。然而,背景是,它无法连接到模态,因此无法像往常一样消失。
我最终使用了
$('.modal-backdrop').remove();
在成功 ajax 调用后,这将删除页面上的所有背景。
请去给Fre的回答投上一票^^
您还可以在按钮上使用数据背景="false" 属性。
这是我的作品。
$('.close').click();
$(document.body).removeClass("模态打开");
$("模态背景").remove();