부트 스트랩이 “일반적인”사실상 드롭 다운 목록 선택 상자를 렌더링하도록 지원하는 것이 있습니까? 즉, 드롭 다운 상자가 값 목록이며 선택하면 목록 상자의 내용이 채워 집니까?
이 기능과 비슷한 것이 있습니까?
답변
부트 스트랩 3은 .form-control
클래스를 사용하여 양식 구성 요소의 스타일을 지정합니다.
<select class="form-control">
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
<option value="four">Four</option>
<option value="five">Five</option>
</select>
http://getbootstrap.com/css/#forms-controls
답변
또 다른 옵션은 부트 스트랩 드롭 다운이 jQuery를 사용하여 선택처럼 동작하도록하는 것입니다 …
$(".dropdown-menu li a").click(function(){
var selText = $(this).text();
$(this).parents('.btn-group').find('.dropdown-toggle').html(selText+' <span class="caret"></span>');
});
답변
Skelly의 훌륭하고 쉬운 답변은 이제 Bootstap의 드롭 다운 구문이 변경되어 구식입니다. 대신 이것을 사용하십시오 :
$(".dropdown-menu li a").click(function(){
var selText = $(this).text();
$(this).parents('.form-group').find('button[data-toggle="dropdown"]').html(selText+' <span class="caret"></span>');
});
답변
테스트 : http://jsfiddle.net/brynner/hkwhaqsj/6/
HTML
<div class="input-group-btn select" id="select1">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="selected">One</span> <span class="caret"></span></button>
<ul class="dropdown-menu option" role="menu">
<li id="1"><a href="#">One</a></li>
<li id="2"><a href="#">Two</a></li>
</ul>
</div>
jQuery
$('body').on('click','.option li',function(){
var i = $(this).parents('.select').attr('id');
var v = $(this).children().text();
var o = $(this).attr('id');
$('#'+i+' .selected').attr('id',o);
$('#'+i+' .selected').text(v);
});
CSS
.select button {width:100%; text-align:left;}
.select .caret {position:absolute; right:10px; margin-top:10px;}
.select:last-child>.btn {border-top-left-radius:5px; border-bottom-left-radius:5px;}
.selected {padding-right:10px;}
.option {width:100%;}
답변
또 다른 옵션은 bootstrap select를 사용하는 것 입니다. 자신의 말로 :
버튼 드롭 다운을 사용하여 부트 스트랩에 대한 사용자 정의 선택 / 다중 선택은 일반 부트 스트랩 선택처럼 작동하도록 설계되었습니다.
답변
.form-control을 사용하지 않는 다른 방법은 다음과 같습니다.
$(".dropdown-menu li a").click(function(){
$(this).parents(".btn-group").find('.btn').html($(this).text() + ' <span class="caret"></span>');
$(this).parents(".btn-group").find('.btn').val($(this).data('value'));
});
$(".dropdown-menu li a").click(function(){
$(this).parents(".btn-group").find('.btn').html($(this).text() + ' <span class="caret"></span>');
$(this).parents(".btn-group").find('.btn').val($(this).data('value'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<div class="btn-group">
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Test <span class="caret"> </span>
</button>
<ul class="dropdown-menu">
<li><a href='#'>test 1</a></li>
<li><a href='#'>test 2</a></li>
<li><a href='#'>test 3</a></li>
</ul>
</div>
답변
Ben의 코드는 부모 div가 양식 그룹 클래스를 갖도록 요구합니다 (btn-group을 사용하고 있음). 가장 가까운 div를 검색하는 약간 다른 버전이며 조금 더 빠를 수도 있습니다.
$(".dropdown-menu li a").click(function(){
var selText = $(this).text();
$(this).closest('div').find('button[data-toggle="dropdown"]').html(selText + ' <span class="caret"></span>');
});