Bootstrap 3 выберите входную форму inline
Я пытаюсь получить вход и выбрать опцию inline, прикрепленную друг к другу, например эту демонстрацию, используя Bootstrap 2.
Следуя рекомендациям Bootstrap 3, мне удается это сделать:
<div class="container">
<div class="col-sm-7 pull-right well">
<form class="form-inline" action="#" method="get">
<div class="form-group col-sm-5">
<input class="form-control" type="text" value="" placeholder="Search" name="q">
</div>
<div class="form-group col-sm-3">
<select class="form-control" name="category">
<option>select</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
<button class="btn btn-primary col-sm-3 pull-right" type="submit">Search</button>
</form>
</div>
</div>
Это отзывчивое, но вход и выбор не могут быть прикреплены без каких-либо неприятных взломов css. Я нашел множество примеров с прикрепленными кнопками, но это не работает с элементом select.
Ответы
Ответ 1
Я думаю, что случайно нашел решение. Единственное, что нужно сделать, это вставить пустой <span class="input-group-addon"></span>
между <input>
и <select>
.
Кроме того, вы можете сделать его "невидимым", уменьшив его ширину, горизонтальное заполнение и границы:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<div class="input-group">
<span class="input-group-addon" title="* Price" id="priceLabel">Price</span>
<input type="number" id="searchbygenerals_priceFrom" name="searchbygenerals[priceFrom]" required="required" class="form-control" value="0">
<span class="input-group-addon">-</span>
<input type="number" id="searchbygenerals_priceTo" name="searchbygenerals[priceTo]" required="required" class="form-control" value="0">
<!-- insert this line -->
<span class="input-group-addon" style="width:0px; padding-left:0px; padding-right:0px; border:none;"></span>
<select id="searchbygenerals_currency" name="searchbygenerals[currency]" class="form-control">
<option value="1">HUF</option>
<option value="2">EUR</option>
</select>
</div>
Ответ 2
Может быть сделано с чистым кодом Bootstrap.
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<div class="form-group">
<label for="id" class="col-md-2 control-label">ID</label>
<div class="input-group">
<span class="input-group-btn">
<select class="form-control" name="id" id="id">
<option value="">
</select>
</span>
<span class="input-group-btn">
<select class="form-control" name="nr" id="nr">
<option value="">
</select>
</span>
</div>
</div>
Ответ 3
Благодаря G_money и другим предложениям для этого отличного решения для ввода-текста со встроенным выпадающим списком... вот еще одно отличное решение.
<form class="form-inline" role="form" id="yourformID-form" action="" method="post">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-male"></i></span>
<div class="form-group">
<input size="50" maxlength="50" class="form-control" name="q" type="text">
</div>
<div class="form-group">
<select class="form-control" name="category">
<option value=""></option>
<option value="0">select1</option>
<option value="1">select2</option>
<option value="2">select3</option>
</select>
</div>
</div>
</form>
Это работает с Bootstrap 3: позволяет вводить текст в строке с выпадающим меню. Вот как это выглядит ниже...
![enter image description here]()
Ответ 4
Он требует небольшого добавления CSS, чтобы он работал с Bootstrap 3:
.input-group-btn:last-child > .form-control {
margin-left: -1px;
width: auto;
}
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<div class="form-group">
<div class="input-group">
<input class="form-control" name="q" type="text" placeholder="Search">
<div class="input-group-btn">
<select class="form-control" name="category">
<option>select</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
</div>
</div>
Ответ 5
Я тоже не могу сделать эту работу без хаков, поэтому я просто использовал раскрывающееся меню вместо окна выбора и отправлял информацию через скрытое поле, например (используя ваш код)
http://bootply.com/93417
Jquery:
$('.dropdown-menu li').click(function(e){
e.preventDefault();
var selected = $(this).text();
$('.category').val(selected);
});
HTML:
<div class="container">
<div class="col-sm-7 pull-right well">
<form class="form-inline" action="#" method="get">
<div class="input-group col-sm-8">
<input class="form-control" type="text" value="" placeholder="Search" name="q">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Select <span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
</ul>
<input type="hidden" name="category" class="category">
</div><!-- /btn-group -->
</div>
<button class="btn btn-primary col-sm-3 pull-right" type="submit">Search</button>
</form>
</div>
</div>
Не уверен, что это будет работать для вас, но это вариант для вас.
Ответ 6
Другой ответ на старый вопрос. Тем не менее, я нашел реализацию, сделанную специально для бутстрапа, которая может оказаться полезной здесь. Надеюсь, это поможет любому, кто смотрит...
Bootstrap-select
Ответ 7
Вот как я сделал это без дополнительных css или jquery:
<div class="form-group">
<div class="input-group">
<label class="sr-only" for="extra3">Extra name 3</label>
<input type="text" id="extra3" class="form-control" placeholder="Extra name">
<span class="input-group-addon">
<label class="checkbox-inline">
Mandatory? <input type="checkbox" id="inlineCheckbox5" value="option1">
</label>
</span>
<span class="input-group-addon">
<label class="checkbox-inline">
Per person? <input type="checkbox" id="inlineCheckbox6" value="option2">
</label>
</span>
<span class="input-group-addon">
To be paid?
<select>
<option value="online">Online</option>
<option value="on spot">On Spot</option>
</select>
</span>
</div>
</div>
Ответ 8
В соответствии с ответом на космос, эта модификация также изменяет отображаемый текст, когда пользователь выбирает другой элемент (как это сделал бы <select>
):
http://www.bootply.com/VxVlaebtnL
HTML:
<div class="container">
<div class="col-sm-7 pull-right well">
<form class="form-inline" action="#" method="get">
<div class="input-group col-sm-8">
<input class="form-control" type="text" value="" placeholder="Search" name="q">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span id="mydropdowndisplay">Choice 1</span> <span class="caret"></span></button>
<ul class="dropdown-menu" id="mydropdownmenu">
<li><a href="#">Choice 1</a></li>
<li><a href="#">Choice 2</a></li>
<li><a href="#">Choice 3</a></li>
</ul>
<input type="hidden" id="mydropwodninput" name="category">
</div><!-- /btn-group -->
</div>
<button class="btn btn-primary col-sm-3 pull-right" type="submit">Search</button>
</form>
</div>
</div>
Jquery:
$('#mydropdownmenu > li').click(function(e){
e.preventDefault();
var selected = $(this).text();
$('#mydropwodninput').val(selected);
$('#mydropdowndisplay').text(selected);
});
Ответ 9
Я знаю, что это немного устарело, но у меня была такая же проблема, и мой поиск привел меня сюда. Я хотел два элемента выбора и кнопку все встроенные, которые работали в 2, но не 3. Я закончил тем, что обернул три элемента в <form class="form-inline">...</form>
. Это действительно отлично сработало для меня.