Javascript 如何从引导筛选/搜索中获取当前选定项?
我正在尝试在引导中创建一个过滤器/搜索功能。当用户搜索某个项目时,如果用户选择“输入”或“选择”该项目,则过滤器会将所做的选择缩小为一个结果。它应该用该项填充字段。我有基本的功能,但我似乎无法获得选择项目的部分Javascript 如何从引导筛选/搜索中获取当前选定项?,javascript,jquery,bootstrap-4,Javascript,Jquery,Bootstrap 4,我正在尝试在引导中创建一个过滤器/搜索功能。当用户搜索某个项目时,如果用户选择“输入”或“选择”该项目,则过滤器会将所做的选择缩小为一个结果。它应该用该项填充字段。我有基本的功能,但我似乎无法获得选择项目的部分 $(文档).ready(函数(){ $(“#myList”).toggle(); $(“#myInput”)。关于(“焦点”,函数(){ $(“#myList”).toggle(); }); $(“#myInput”)。在(“focusout”,function()上{ $(“#myL
$(文档).ready(函数(){
$(“#myList”).toggle();
$(“#myInput”)。关于(“焦点”,函数(){
$(“#myList”).toggle();
});
$(“#myInput”)。在(“focusout”,function()上{
$(“#myList”).toggle();
});
$(“#myInput”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase();
$(“#myList li”).filter(函数(){
$(this).toggle($(this).text().toLowerCase().indexOf(value)>-1)
});
});
});代码>
可筛选列表
在输入字段中键入某些内容以在列表中搜索特定项目:
第一项
第二项
第三项
第四项
要填充字段,只需在项目中放置一个单击事件,单击其中一个项目时,获取其文本并在字段中设置
问题在于,您的focusout
事件在项目上的单击
事件之前触发,因此它会在单击
事件生效之前隐藏列表
为了克服这个问题,您可以设置一个小的超时(我设置为100毫秒)来隐藏单击事件后的列表。一切都会好起来的
$(文档).ready(函数(){
$(“#myList”).toggle();
$(“#myInput”)。关于(“焦点”,函数(){
$(“#myList”).toggle();
});
$(“#myInput”)。在(“focusout”,function()上{
//在这里,它将等待100毫秒来隐藏列表。
setTimeout(函数(){
$(“#myList”).toggle();
}, 100);
});
$(“#myInput”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase();
$(“#myList li”).filter(函数(){
$(this).toggle($(this).text().toLowerCase().indexOf(value)>-1)
});
});
//这是选择选项后填充字段的代码。
$(#myList li”)。在(“单击”,函数()上{
var texto=$(this.text();
$(“#myInput”).val(texto);
});
});代码>
可筛选列表
在输入字段中键入某些内容以在列表中搜索特定项目:
第一项
第二项
第三项
第四项
我似乎无法让它工作,我做了一些编辑,但仍然无法将名称输入到输入字段。@kane\u 004但它在代码段中工作,对吗?什么对您不起作用?当您单击列表中的某个项目时,字段中的文本将更新。这就是它在片段中所做的。这不是你想要的吗?是的,现在可以了。我很抱歉,就在昨天,这个代码片段100%不起作用,但当我刚刚尝试它时,它起作用了。再次谢谢你,没问题。如果您认为它有用,您可以单击左侧的复选图标接受答案。:)