- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 Bootstrap 框架的网站。我有两个非常讨厌的输入字段,我被困住了,因为我无法让它们正常工作......
其中一个是 Bootstrap Typeahead 输入字段:
<input type="text" id="typeahead" name='name' placeholder='The name' class="form-control" data-provide="typeahead" autocomplete="off" />
另一个是这个下拉列表:
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" id="dates-dropdown-button" type="button" data-toggle="dropdown" href="#">
<?=$reminder_table_th_date?>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1" id="name-dates-dropdown">
</ul>
</div>
(<li>
列表是通过 Ajax 调用填充的)
对于这两种情况,我都想做:如果我在带有预先输入的ajax下拉字段或下拉列表中选择一项,则所选项目应该是该字段显示的值。我尝试了很多很多方法,例如:
How to Display Selected Item in Bootstrap Button Dropdown Title
Bootstrap typeahead - How to set the default value manually
但它们都不起作用,我不知道为什么。我根本不是 JS/jQuery 专家,但这只是可疑的。我到底应该在哪里放置此函数的 jQuery 代码以及如何放置?
PS:Firefox Firebug 没有显示任何 JS 错误,它们只是不执行任何操作,未设置值或未调用它们的函数。
这是用于 typeahead Ajax 调用、下拉列表填充的 jQuery 代码(这运行良好),还有一行应该设置 typeahead 值(在更新程序中),但遗憾的是这不起作用:
<script type="text/javascript">
$(document).ready(function() {
$('#typeahead').typeahead({
source: function (query, process) {
$.ajax({
url: '/functions/name-autocomplete.php',
type: 'POST',
dataType: 'JSON',
data: 'query=' + query,
success: function(data) {
process(data);
}
});
},
displayText: function(item) {
return item
},
updater: function (item) {
$('#typeahead').typeahead('val', item);
$.ajax({
url: '/functions/name-dates-autocomplete.php',
type: 'POST',
dataType: 'JSON',
data: 'query=' + item,
success: function(data) {
$('#name-dates-dropdown').html(data);
}
});
}
});
});
</script>
最佳答案
为了处理 Bootstrap 下拉列表中的选择,您可以将点击事件处理程序绑定(bind)到 ul.dropdown-menu 元素。
这也使您能够从嵌套的 li 元素中捕获点击事件,这实际上可以被视为选择事件。
假设这个 html 结构:
<div>
<input type="text"
id="typeahead"
name="date"
placeholder="date"
class="form-control"
data-provide="typeahead"
autocomplete="off" />
</div>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle"
id="dates-dropdown-button" type="button"
data-toggle="dropdown" href="#">
<!-- Placeholder for the selected th date -->
<span class="selection"><?=$reminder_table_th_date?></span>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1" id="name-dates-dropdown">
<li>12.11.97</li>
<li>10.01.07</li>
<li>2.11.2017</li>
</ul>
</div>
然后您可以使用以下命令处理 Bootstrap 下拉列表上的选择该事件处理程序:
// handles selections on a bootstrap dropdown list
$('.dropdown-menu').click(function (e) {
var isLITag = e.target && e.target.tagName == 'LI';
if (isLITag) {
var selectedValue = $(e.target).text();
$('#typeahead').typeahead('val', selectedValue);
// Specifies the display value of the dropdown element
$('.dropdown-toggle .selection').text(selectedValue);
e.preventDefault();
}
});
我认为如何将数据源分配给预输入有一个问题,只有第二个参数接受 datasources 。此外 typeahead.js 提供了更丰富的数据源实现,称为 Bloodhound ,值得考虑。
我创建了一个使用 Bloodhound 数据源的演示。它还演示了如何指定 typeahead 的值以及如何处理 typeahead 选择。
$(document).ready(function() {
// Constructs the suggestion engine with a set of local dummy dates.
var dateSet = {
name: 'dates',
display: 'date',
source: new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('date'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: [{
'date': '12.11.97',
'id': 0
}, {
'date': '2.11.2017',
'id': 1
}, {
'date': '10.01.07',
'id': 2
}]
/**
* In order to integrate your ajax call
* replace the local attribute with:
*
* remote: {
* url: '/functions/name-autocomplete.php?query=%QUERY',
* wildcard: '%QUERY'
* }
*
* Twitter provides a list of examples at:
* http://twitter.github.io/typeahead.js/examples/
*
*/
})
};
// Creates the typeahead and assign the dateSet.
$('#typeahead').typeahead({
minLength: 1
}, dateSet);
// The selection handler sets the value for the drop down-menu
// whenever a suggestion is chosen.
$('#typeahead').bind('typeahead:select', function(ev, selection) {
$('.dropdown-menu').val(selection.date);
$('.dropdown-toggle .selection').text(selection.date);
});
// handles selections on a bootstrap dropdown list
$('.dropdown-menu').click(function(e) {
var isLITag = e.target && e.target.tagName == 'LI';
if (isLITag) {
var selectedValue = $(e.target).text();
$('#typeahead').typeahead('val', selectedValue);
//Specifies the display value of the dropdown element
$('.dropdown-toggle .selection').text(selectedValue);
e.preventDefault();
}
});
});
.tt-menu {
background: white;
box-shadow: 0 5px 10px rgba(0,0,0,.2);
border-radius: 9px;
padding: 10px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js"></script>
<div>
<input type="text"
id="typeahead"
name='name'
placeholder='Serach for ...'
class="form-control"
data-provide="typeahead"
autocomplete="off" />
</div>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle"
id="dates-dropdown-button" type="button"
data-toggle="dropdown" href="#">
<!-- Placeholder for the selected th date -->
<span class="selection"><?=$reminder_table_th_date?></span>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1" id="name-dates-dropdown">
<li>12.11.97</li>
<li>10.01.07</li>
<li>2.11.2017</li>
</ul>
</div>
关于javascript - Bootstrap 下拉列表中的选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578745/
我有十二个指向不同类别的链接。作为用户定位的一种方式,我想强调用户现在所在的类别( - 按钮)。 如何在 CSS 中实现这一点?我读到了 selected和 active ,但我还没能让它发挥作用。
我想通过单击按钮来获取选择框中的所有选项值(选定/未选定)。我怎样才能做到这一点? 最佳答案 我认为这是使用 Traversing/map 的好机会方法: var valuesArray = $("#
我正在尝试构建一个计算器,其中包含两个数字的两个 TextView 字段。我弄清楚了如何使用“应用程序内”数字键盘输入顶部数字 Operand 1 [textView] 的数字(我知道使用 EditT
我有一个简单的 jQuery $("span.value"),它选择包含文本的节点。此文本保证为整数。如何计算所有选定节点文本的总和,并将总和放入另一个节点? 3 4 5 ? 最佳答案 你可以这样做:
我从同一台服务器上托管的一堆数据库中备份了 mysql 数据库 db1。现在只需要备份具有访问 db1 权限的选定用户,以便我可以在 db1 还原之前将这些特权用户还原到我的新服务器。 最佳答案 St
我有一个 ListView 。我想添加一个动画,如果我选择一个列表项,它将被删除,并且该项目下方的其余项目将通过向上滑动动画向上移动。我已经通过获取其子位置使用线性布局完成了此操作,但我无法理解如何向
我不明白如何使用 Python 解析来自 Outlook 的突出显示(选定)邮件? 我有这个代码,但它适用于上一封邮件。 import win32com.client outlook = win32c
在 Xcode 6 中,您现在可以为选项卡项目的选中和未选中状态设置图标。请参阅下图中的说明: 和 唯一的问题是 SELECTED 状态的图像不显示。它只是显示空白。还有其他人有这个问题吗?请看下面的
在我的数据模型中,我有一个实体组和另一个GroupMember实体。一个Group包含一个或多个GroupMembers,但一个GroupMember只能同时位于一个Group中。到目前为止没有问题,
Android Button 在不同状态(正常、按下、选中、禁用)之间移动时会更改其可绘制背景。背景切换是即时的。是否可以使其平滑(动画)? 最佳答案 是的,这是可能的。您只需为按钮添加 addAni
我使用 emacs 来查看和编辑代码和其他文本文件。我想知道是否有一种方法可以向前或向后搜索当前缓冲区中标记的文本。类似于我在记事本或写字板中可以执行的操作。就像我可以在缓冲区中标记一些文本并执行 C
如何根据状态(选定、禁用)设置自定义选择类?如何根据状态选择(选定、禁用)在自定义下拉列表中设置类?照做了,但什么也没发生。请看我的例子................................
我正在尝试检查下拉菜单中是否存在特定文本值,如果存在,我想将其属性设置为selected。 我成功编写了一个 if 语句来检查文本是否存在: var country = usr.location; i
对于我的应用程序,我想让用户能够在回收器 View 中调整 TextView 项目的文本大小(通过捏缩放或 SeekBar)。默认值应为系统设置中选择的文本大小。最小值应为系统设置中的“非常小”,最大
我正在尝试创建一个 ListBoxItem 模板,该模板在选择时将带有圆角边框。我得到了这个 xaml,它在选择时不起作用:
我正在寻找检索焦点元素的 HTML。查看 webdriver.io 文档,方法 .getActiveElement() 应该可以解决这个问题。但是,我的 IDE (WebStorm) 显示错误,指出它
我创建了一个圆,在我的 onDraw() 方法中围绕圆绘制了一条字符串和一条线(箭头)。 public class Circle extends Activity { public class
对于生产应用程序,我们希望在 Windows 窗体应用程序的 ElementHost 内显示 DatePicker,但我们遇到了 SelectedDate 和 CurrentDate 不可读的问题,因
好的,我在此处和 Google 上的许多网站上搜索了此问题的结果,但找不到针对我的问题的确切解决方案。 我有一个 sql 提取姓名和办公室。所以事情是这样的: $sql = "SELECT m
选中单元格时如何改变灰色? 最佳答案 当用户点击选中的行 (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSInd
我是一名优秀的程序员,十分优秀!