当用户从下拉菜单中选择项目时如何防止 bootstrap 模式关闭
How to prevent a bootstrap modal from closing when user selects item from dropdown-menu
在下面的示例中,当用户单击下拉列表中的任何项目时,模式 window 会自动触发关闭。当用户单击“发送”按钮时,模态 window 应关闭。需要类别和消息才能激活“发送”按钮(但这不在主题范围内)。
我试图通过
来阻止这种行为
$('.dropdown-menu').click(function(event){
event.stopPropagation();
});
,但它并没有改变任何东西。
<div class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form role="form">
<div class="row">
<div class="col-xs-12">
<div class="dropdown">
<button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Select category<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li><a href="">Category 1</a></li>
<li><a href="">Category 2</a></li>
<li><a href="">Category 3</a></li>
<li><a href="">Category 4</a></li>
<li><a href="">Category 5</a></li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label for="message-text" class="control-label">MESSAGE</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-xs-2">
<p><a class="btn btn-primary" href="#" role="button">SEND</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
您使用的是用于导航栏的下拉菜单,它会在单击时立即执行操作,因为它旨在将人们发送到 URL。相反,使用标准的 HTML 下拉菜单并将其设置为按钮样式。
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form role="form">
<div class="row">
<div class="col-xs-12">
<select class="btn btn-default">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label for="message-text" class="control-label">MESSAGE</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-xs-2">
<p><a class="btn btn-primary" href="#" role="button">SEND</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
我假设您希望将 selected 操作用于某些事情,因此您会希望在用户 select 保留内容后向用户显示该操作明显的。此外,使用实际的下拉列表意味着您可以在用户点击提交按钮时轻松拉出 selected 值。您的按钮也是一个程式化的锚标记,因此它不会像标准按钮那样工作,但我不知道您的整个用例。只是指出它来涵盖我的所有基础。
您正在使用 href
中没有值的链接。添加“#”或任何其他值。
<ul class="dropdown-menu" role="menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
在下面的示例中,当用户单击下拉列表中的任何项目时,模式 window 会自动触发关闭。当用户单击“发送”按钮时,模态 window 应关闭。需要类别和消息才能激活“发送”按钮(但这不在主题范围内)。
我试图通过
来阻止这种行为$('.dropdown-menu').click(function(event){
event.stopPropagation();
});
,但它并没有改变任何东西。
<div class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form role="form">
<div class="row">
<div class="col-xs-12">
<div class="dropdown">
<button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Select category<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li><a href="">Category 1</a></li>
<li><a href="">Category 2</a></li>
<li><a href="">Category 3</a></li>
<li><a href="">Category 4</a></li>
<li><a href="">Category 5</a></li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label for="message-text" class="control-label">MESSAGE</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-xs-2">
<p><a class="btn btn-primary" href="#" role="button">SEND</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
您使用的是用于导航栏的下拉菜单,它会在单击时立即执行操作,因为它旨在将人们发送到 URL。相反,使用标准的 HTML 下拉菜单并将其设置为按钮样式。
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<form role="form">
<div class="row">
<div class="col-xs-12">
<select class="btn btn-default">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label for="message-text" class="control-label">MESSAGE</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-xs-2">
<p><a class="btn btn-primary" href="#" role="button">SEND</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
我假设您希望将 selected 操作用于某些事情,因此您会希望在用户 select 保留内容后向用户显示该操作明显的。此外,使用实际的下拉列表意味着您可以在用户点击提交按钮时轻松拉出 selected 值。您的按钮也是一个程式化的锚标记,因此它不会像标准按钮那样工作,但我不知道您的整个用例。只是指出它来涵盖我的所有基础。
您正在使用 href
中没有值的链接。添加“#”或任何其他值。
<ul class="dropdown-menu" role="menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>