「通常の」デファクトドロップダウンリスト選択ボックスをレンダリングするためにブートストラップがサポートするものはありますか? つまり、ドロップダウン ボックスは値のリストであり、選択されている場合はリスト ボックスの内容を入力しますか?
この機能に似たものはありますか?
http://bootstrapformhelpers.com/select/
「通常の」デファクトドロップダウンリスト選択ボックスをレンダリングするためにブートストラップがサポートするものはありますか? つまり、ドロップダウン ボックスは値のリストであり、選択されている場合はリスト ボックスの内容を入力しますか?
この機能に似たものはありますか?
http://bootstrapformhelpers.com/select/
Bootstrap 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>
Dropdownコンポーネントを使用してブートストラップを選択できます...
ブートストラップ 5 (2021 年更新)
<a class="btn btn-primary dropdown-toggle" data-bs-toggle="dropdown" href="#" id="selectA">Select<span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="dropdown-item"><a href="#">Item I</a></li>
<li class="dropdown-item"><a href="#">Item II</a></li>
<li class="dropdown-item"><a href="#">Item III</a></li>
<li class="dropdown-item"><a href="#">Item IV</a></li>
</ul>
let links = document.querySelectorAll('.dropdown-item')
links.forEach(element => element.addEventListener("click", function () {
let text = element.innerText
document.getElementById('selectA').innerText = text
}))
元の回答 (Bootstrap 3)
別のオプションは、Bootstrap ドロップダウンを jQuery を使用して選択のように動作させることです...
$(".dropdown-menu li a").click(function(){
var selText = $(this).text();
$(this).parents('.btn-group').find('.dropdown-toggle').html(selText+' <span class="caret"></span>');
});
別のオプションとして、bootstrap selectを使用することもできます。彼ら自身の言葉で:
通常の Bootstrap 選択のように動作するように設計された、ボタン ドロップダウンを使用した Bootstrap のカスタム選択/複数選択。
Bootstapのドロップダウン構文の変更により、Skellyの素晴らしく簡単な答えは時代遅れになりました。代わりにこれを使用します。
$(".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>');
});
.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>
私は現在、ドロップダウンと戦っています。私の経験を共有したいと思います。
<select>
使用できない特定の状況があり、ドロップダウンで「エミュレート」する必要があります。
たとえば、ドロップダウン付きのボタンなどのブートストラップ入力グループを作成する場合 ( http://getbootstrap.com/components/#input-groups-buttons-dropdownsを参照)。残念ながら<select>
、入力グループではサポートされていないため、適切にレンダリングされません。
または、誰かがすでにこれを解決していますか?私はその解決策に非常に興味があります。
さらに複雑なことに$(this).text()
、ドロップダウンのコンテンツとしてグリピコンまたはフォントの素晴らしいアイコンを使用している場合、ドロップダウンでユーザーが選択したものを簡単にキャッチすることはできません。例:
<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
この場合、テキストがなく、追加するとドロップダウン要素にも表示されるため、これは望ましくありません。
私は2つの可能な解決策を見つけました:
1)$(this).html()
選択した要素のコンテンツを取得<li>
してから調べるために使用しますが、次のようなものが得られる<a href="#0"><i class="fa fa-minus"></i></a>
ため、必要なものを抽出するにはこれを操作する必要があります。
2)$(this).text()
非表示のスパン: の要素のテキストを使用して非表示にします
<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>
。私にとって、これはシンプルでエレガントなソリューションです。必要なテキストを配置でき、テキストは非表示になり、必要 $(this).html()
なものを取得するためにオプション 1) のような結果の変換を行う必要はありません。
それが明確で、誰かを助けることができることを願っています:-)
Bootstrap3.form-control
はクールですが、ボタンと ul オプション付きのドロップダウンが好きな人や必要な人のために、更新されたコードを次に示します。ハッシュ リンクへのジャンプと選択後のドロップダウンのクローズを修正するために、Steve によるコードを編集しました。
スティーブ、ベン、スケリーに感謝!
$(".dropdown-menu li a").click(function () {
var selText = $(this).text();
$(this).closest('div').find('button[data-toggle="dropdown"]').html(selText + ' <span class="caret"></span>');
$(this).closest('.dropdown').removeClass("open");
return false;
});