Twitter Встроенный ввод в бутстрап с выпадающим списком
Я пытаюсь отобразить текстовый ввод inline с выпадающей кнопкой. Я не могу понять, как это сделать. Здесь HTML, который я пробовал (я положил все это на одну строку без каких-либо результатов):
<div class="input-append">
<input type="text" placeholder="foo" class="input-mini">
<div class="btn-group">
<a id="amount_type" class="btn dropdown-toggle" data-toggle="dropdown" href="#">10<span class="caret"></span></a>
<ul id="amount_type_options" class="dropdown-menu">
<li class="selected"><a href="#">10</a></li>
<li><a href="#">100</a></li>
<li><a href="#">1000</a></li>
</ul>
</div>
</div>
Возможно ли это?
Спасибо
Ответы
Ответ 1
Текущее состояние: реализация по умолчанию в документах
В настоящее время в документации здесь используется стандартная версия ввода + выпадающего списка (поиск по раскрывающимся спискам кнопок). Я оставляю оригинальное решение для записи и для тех, кто не может использовать решение, которое теперь включено в документацию.
Исходное решение
Да, это возможно. На самом деле есть один пример из документации Twitter Bootstrap (перейдите по ссылке и выполните поиск "Примеры" для раскрывающихся кнопок):
<div class="btn-group">
<a class="btn btn-primary" href="#">
<i class="icon-user icon-white"></i> User
</a>
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#"><i class="icon-pencil"></i> Edit</a></li>
<li><a href="#"><i class="icon-trash"></i> Delete</a></li>
<li><a href="#"><i class="icon-ban-circle"></i> Ban</a></li>
<li class="divider"></li>
<li><a href="#"><i class="i"></i> Make admin</a></li>
</ul>
</div>
Если он заключен в текст, он может выглядеть так (текст на кнопке изменен, ничего больше):
![Twitter Bootstrap dropdown button within text]()
EDIT:
Если вы пытаетесь достичь <input>
с добавленным раскрывающимся меню, как в раскрывающихся меню, это одно из решений:
- Добавьте класс
btn-group
к элементу с классом input-append
,
- Добавить элементы с классами
dropdown-toggle
и dropdown-menu
в конце элемента с классом input-append
,
- Стиль переопределения для соответствия элемента
.input-append .btn.dropdown-menu
, поэтому он не имеет float: left
(иначе он попадет в следующую строку).
Полученный код может выглядеть так:
<div class="input-append btn-group">
<input class="span2" id="appendedInputButton" size="16" type="text">
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#"><i class="icon-pencil"></i> Edit</a></li>
<li><a href="#"><i class="icon-trash"></i> Delete</a></li>
<li><a href="#"><i class="icon-ban-circle"></i> Ban</a></li>
<li class="divider"></li>
<li><a href="#"><i class="i"></i> Make admin</a></li>
</ul>
</div>
с небольшой поддержкой этого переопределения стиля:
.input-append .btn.dropdown-toggle {
float: none;
}
и получите тот же результат:
![enter image description here]()
EDIT 2: Обновлен селектор CSS (был .dropdown-menu
, is .dropdown-toggle
).
Ответ 2
Как и в Bootstrap 3.x, здесь приведен пример этого в документах: http://getbootstrap.com/components/#input-groups-buttons-dropdowns
<div class="input-group">
<input type="text" class="form-control" aria-label="...">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Action <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right" 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>
</div><!-- /btn-group -->
</div><!-- /input-group -->
Ответ 3
Это мое решение - использовать display: inline
Some text <div class="dropdown" style="display:inline">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Separated link</a></li>
</ul>
</div> is here
а
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />Your text
<div class="dropdown" style="display: inline">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<li><a href="#">Action</a>
</li>
<li><a href="#">Another action</a>
</li>
<li><a href="#">Something else here</a>
</li>
<li><a href="#">Separated link</a>
</li>
</ul>
</div>is here
Ответ 4
Это код для Bootstrap с раскрывающимся списком ввода.
Я много искал, а затем пробовал его в javascript и html с загрузкой,
Код HTML:
<div class="form-group">
<label class="col-xs-3 control-label">Language</label>
<div class="col-xs-7">
<div class="dropdown">
<button id="mydef" class="btn dropdown-toggle" type="button" data-toggle="dropdown" onclick="doOn(this);">
<div class="col-xs-10">
<input type="text" id="search" placeholder="search" onkeyup="doOn(this);"></input>
</div>
<span class="glyphicon glyphicon-search"></span>
</button>
<ul id="def" class="dropdown-menu" style="display:none;" >
<li><a id="HTML" onclick="mydef(this);" >HTML</a></li>
<li><a id="CSS" onclick="mydef(this);" >CSS</a></li>
<li><a id="JavaScript" onclick="mydef(this);" >JavaScript</a></li>
</ul>
<ul id="def1" class="dropdown-menu" style="display:none"></ul>
</div>
</div>
Код Javascript:
function doOn(obj)
{
if(obj.id=="mydef")
{
document.getElementById("def1").style.display="none";
document.getElementById("def").style.display="block";
}
if(obj.id=="search")
{
document.getElementById("def").style.display="none";
document.getElementById("def1").innerHTML='<li><a id="Java" onclick="mydef(this);" >java</a></li><li><a id="oracle" onclick="mydef(this);" >Oracle</a></li>';
document.getElementById("def1").style.display="block";
}
}
function mydef(obj)
{
document.getElementById("search").value=obj.innerHTML;
document.getElementById("def1").style.display="none";
document.getElementById("def").style.display="none";
}
Вы можете использовать jquery и json-код также в соответствии с вашими требованиями.
Вывод:
![введите описание изображения здесь]()
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Ответ 5
Daniel Farrell Bootstrap Combobox отлично работает. Вот пример из его репозитория GitHub.
$(document).ready(function(){
$('.combobox').combobox();
// bonus: add a placeholder
$('.combobox').attr('placeholder', 'For example, start typing "Pennsylvania"');
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-combobox/1.1.8/css/bootstrap-combobox.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-combobox/1.1.8/js/bootstrap-combobox.min.js"></script>
<select class="combobox form-control">
<option></option>
<option value="PA">Pennsylvania</option>
<option value="CT">Connecticut</option>
<option value="NY">New York</option>
<option value="MD">Maryland</option>
<option value="VA">Virginia</option>
</select>
Ответ 6
Искать "тег datalist"
<input list="texto_pronto" name="input_normal"><datalist id="texto_pronto"><option value="texto A"><option value="texto B"></datalist>