答案 0 :(得分:1)
虽然您不应该以这种方式使用下拉菜单,但如果您绝对想要这样做,您可以自己手动触发下拉菜单切换。
下拉列表被清除的原因是,当您点击click.bs.dropdown.data-api
元素时,document
上的select
事件就会被触发。
如果使用[data-toggle="dropdown"]
选择器未触发下拉菜单,则可以避免这种情况。
缺点是您无法通过在下拉菜单外单击来关闭下拉列表。当然,您可以随时添加其他活动来关闭它,但这取决于您。
(function($, window, document) {
$("#dropdown").on("click", function() {
$(this).parent().toggleClass("open");
});
$("#dropdown-save").on("click", function() {
$(this).closest(".dropdown").removeClass("open");
});
})(jQuery, window, document);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js'></script>
<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css'>
<div class="dropdown">
<button id="dropdown" class="btn btn-primary dropdown-toggle" type="button">Dropdown Example
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li>
<label for="label">Label</label>
<input type="text" id="label">
</li>
<li>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</li>
<li>
<button id="dropdown-save">Save</button>
</li>
</ul>
</div>
&#13;