Javascript Jquery:键入时筛选下拉列表
我使用了一个原型插件,它可以在您键入时过滤下拉列表的内容。因此,例如,如果在文本框中键入“cat”,则只有包含子字符串“cat”的项才会作为选项保留在下拉列表中 有人知道jquery插件可以做到这一点吗?jquery插件 编辑:我最初链接到错误的自动完成插件。检查这些插件:Javascript Jquery:键入时筛选下拉列表,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我使用了一个原型插件,它可以在您键入时过滤下拉列表的内容。因此,例如,如果在文本框中键入“cat”,则只有包含子字符串“cat”的项才会作为选项保留在下拉列表中 有人知道jquery插件可以做到这一点吗?jquery插件 编辑:我最初链接到错误的自动完成插件。检查这些插件: 我几年前写的。它可能很容易打包成jQuery插件。欢迎你来 如果您想查看其中的代码,我也可以在我的仪表板小部件中执行此操作。尝试“jquery选项过滤器”,它基于实际选择框并在选项文本中间匹配: 对于diyism,
- 我几年前写的。它可能很容易打包成jQuery插件。欢迎你来
如果您想查看其中的代码,我也可以在我的仪表板小部件中执行此操作。尝试“jquery选项过滤器”,它基于实际选择框并在选项文本中间匹配:
对于diyism,我只是在寻找类似的东西,而对于我所需要的东西来说,最好的一个似乎就是diyism。它将多个选择框变成了一个非常灵活的双列表视图,主列表上有实时过滤功能 编辑:新发展强> 是一个JavaScript插件,它使冗长、笨拙的选择框更加用户友好。它目前有jQuery和Prototype两种版本
在可预见的未来,我将在所有使用select的项目上完全使用。是一个相当新的select分支,有很多特性(例如,针对单个项目的AJAX+自定义HTML)。我刚刚快速地实现了这个特性。它使用了一些全局变量,您可能希望改进实现以删除这些变量 这里的“#xsca_member_filter”是作为文本输入的过滤器,“#members”是选择输入
$('documenet').ready(function(){
init();
$('#xsca_member_filter').keyup(function(){
filter($(this));
});
});
//save all available options with their values and the empty option.
init = function(){
options = new Object();
$('#owner option').each(function(){
var obj = $(this);
if(obj.attr("value") != "")
options[obj.attr('value')] = obj.html();
else
emptyOption = obj.html();
});
selObj = $('#owner');
};
filter = function(elem){
var filter = elem.val();
var selected = $('#owner option:selected').val();
//delete all options and add the empty option
selObj.html("");
selObj.append("<option> "+emptyOption+" </option>");
//add all options conaining the filter string
for(value in options){
var option = options[value];
if((options[value]).indexOf(filter) != -1){
selObj.append("<option value='"+value+"'> "+options[value]+" </option>");
}
}
//select the previously selected option
$("#owner option[value = '"+selected+"']").prop("selected", true);
}
$('documenet').ready(函数(){
init();
$('#xsca_成员_筛选器').keyup(函数(){
过滤器($(此));
});
});
//保存所有可用选项及其值和空选项。
init=函数(){
选项=新对象();
$(“#所有者选项”)。每个(函数(){
var obj=$(本);
如果(对象属性(“值”)!=“”)
选项[obj.attr('value')]=obj.html();
其他的
emptyOption=obj.html();
});
selObj=$(“#所有者”);
};
过滤器=功能(元素){
var filter=elem.val();
var selected=$(“#所有者选项:selected”).val();
//删除所有选项并添加空选项
html(“”);
selObj.append(“+emptyOption+”);
//添加包含筛选器字符串的所有选项
for(选项中的值){
var期权=期权[价值];
if((选项[值]).indexOf(过滤器)!=-1){
selObj.append(“+options[value]+”);
}
}
//选择以前选择的选项
$(“#所有者选项[值='”+选定项+“']”)prop(“选定项”,true);
}
$(文档).ready(函数(){
$(“#myInput”)。在(“keyup”,function()上{
var value=$(this.val().toLowerCase();
$(“#过滤器*”)。过滤器(函数(){
$(this).toggle($(this).text().toLowerCase().indexOf(value)>-1)
});
});
});代码>
滤器
筛选依据:
全部的
支付
认可的
悬而未决的
拒绝
此插件上次更新是在一年前(2008年1月);这在i-net中的时间有点长。据我所知,它在所有浏览器中都能完美地完成这项工作——我已经在生产中使用了它。现在你让我有点担心…它是过滤列表还是只根据输入创建列表?@Andrew,是的,它可以,你只需要在传递给它的选项中定义它的行为。这是最好的插件。这正是我想要的。您介意有人将其打包为JQuery插件并分发吗?我正在考虑下个月发布一些插件,这将是一个很好的插件。如果可以的话,也许可以链接到源代码中的原始页面?当然可以,如果它被发布的话!我一直坐在一堆代码上,我一直想在今年年初以JQuery/prototype插件的形式发布这些代码!这也符合多选列表的需要。太棒了+100分!MultiSelect正是我一直在寻找的插件@标记退房;它似乎比MultiSelect好得多。很好的发现,这个插件是boss。小部件不允许多选(即,按住shift键并单击以选择一系列项目,根据组合框的原始功能),这是不幸的。@EdBrannin你认为哪一个是基于选择的?对于简单的选择标记示例。链接似乎断开了。