我正在使用Loopj Tokeninput 插件,我想知道是否有人在其中实现了jQuery“组合框”功能?或类似的东西?范围是允许通过单击“向下箭头”或仅像下拉菜单一样单击输入字段来显示来自本地源的所有数据(但允许在键入内容时缩小范围......)。如果是这样,有人可以分享如何实现它吗?
问问题
3077 次
2 回答
8
Chosen
正是您所需要的。
Chosen 是一个 JavaScript 插件,它使长而笨重的选择框更加用户友好。它目前有 jQuery 和 Prototype 两种风格。
于 2012-08-19T17:02:25.743 回答
3
嘿,在 tokeninput 插件中没有预定义的方法可以做到这一点。但是我们可以改变插件本身来实现你所需要的。我对插件做了一些更改。在您的 jquery.tokenput.js 文件中进行相同的更改,看看它是否有效。打开js文件。搜索
var 输入框
现在转到 .focus(function(){}) 的一部分并用它替换它。
if (settings.tokenLimit === null || settings.tokenLimit !== token_count) {
if (settings.local_data) {
setTimeout(function() { run_search(''); }, 5);
} else {
show_dropdown_hint();
}
搜索函数 run_search(query)。如果是函数的一部分,请转到 else 并将其替换为以下函数。
else if (settings.local_data) {
// Do the search through local data
var results ;
if(query==''){
results= settings.local_data;
}
else{
results= $.grep(settings.local_data, function(row) {
return (row[settings.propertyToSearch].toLowerCase().indexOf(query.toLowerCase()) == 0 || row[settings.propertyToSearch].toLowerCase().indexOf(' ' + query.toLowerCase()) > -1);
});
}
当框处于焦点且查询为空时,我们使用该输入框的 onfocus 返回整个列表。如果查询不为空,则它将搜索该查询。
另外,如果你想在搜索结果框中显示滚动条,你应该修改token-input.css文件中“div.token-input-dropdown”的css如下: - Eliminate or Comment: “overflow: hidden ;" - 添加:“最大高度:150px;” (或您希望框具有的任何最大高度) - 添加:“溢出:自动;”
于 2012-08-19T20:00:20.320 回答