自 2.1.0 版本起
为 <input>
元素添加自动完成功能。
类型: 函数
一个在输入值更改时调用的函数,应该返回一个可能的补全列表。
该函数可以接受一个或两个参数:
value
- 当前的 <input>
值。done
- 可选的回调函数,将使用补全结果调用该函数。如果函数有两个参数,它 必须 使用 done
调用结果,而不是返回它们。这允许函数进行异步工作以生成补全。
返回的补全列表必须是对象数组,形式如下:
{
value: "<string>", // 如果选择则插入的值
label: "<string>"|DOMElement // 在下拉中显示的标签
}
label
可以是一个 DOMElement。这可以用于提供补全的自定义显示 - 例如,包含更多上下文信息。
从 <input>
中移除自动完成功能。
$(".input").autoComplete('destroy');
<input>
上实现自动完成<input type="text" id="node-input-example1">
// 查看页面源代码以查看此示例中使用的完整动物列表
let animals = ["土豚","鳄鱼","羊驼","巨蟒","蚂蚁","羚羊",
"鲤鱼","猫","毛虫","鲶鱼","猎豹","鸡",
"鹿","恐龙","狗","海豚","驴","鸽子"];
$("#node-input-example1").autoComplete({
search: function(val) {
var matches = [];
animals.forEach(v => {
var i = v.toLowerCase().indexOf(val.toLowerCase());
if (i > -1) {
matches.push({
value: v,
label: v,
i: i
})
}
});
matches.sort(function(A,B){return A.i-B.i})
return matches
}
})
选择一种动物
<input type="text" id="node-input-example2">
// 查看页面源代码以查看此示例中使用的完整动物列表
let animals = ["土豚","鳄鱼","羊驼","巨蟒","蚂蚁","羚羊",
"鲤鱼","猫","毛虫","鲶鱼","猎豹","鸡",
"鹿","恐龙","狗","海豚","驴","鸽子"];
$("#node-input-example2").autoComplete({
search: function(val, done) {
var matches = [];
animals.forEach(v => {
var i = v.toLowerCase().indexOf(val.toLowerCase());
if (i > -1) {
matches.push({
value: v,
label: v,
i: i
})
}
});
matches.sort(function(A,B){return A.i-B.i})
// 通过使用 setTimeout 模拟异步工作
// 延迟响应 1 秒
setTimeout(function() {
done(matches);
},1000)
}
})
选择一种动物
<input type="text" id="node-input-example3">
// 查看页面源代码以查看此示例中使用的完整动物列表
let animals = ["土豚","鳄鱼","羊驼","巨蟒","蚂蚁","羚羊",
"鲤鱼","猫","毛虫","鲶鱼","猎豹","鸡",
"鹿","恐龙","狗","海豚","驴","鸽子"];
$("#node-input-example3").autoComplete({
search: function(val) {
var matches = [];
animals.forEach(v => {
var i = v.toLowerCase().indexOf(val.toLowerCase());
if (i > -1) {
var pre = v.substring(0,i);
var matchedVal = v.substring(i,i+val.length);
var post = v.substring(i+val.length)
var el = $('<div/>',{style:"white-space:nowrap"});
$('<span/>').text(pre).appendTo(el);
$('<span/>',{style:"font-weight: bold; color:red"}).text(matchedVal).appendTo(el);
$('<span/>').text(post).appendTo(el);
matches.push({
value: v,
label: el,
i:i
})
}
})
matches.sort(function(A,B){return A.i-B.i})
return matches
}
})
选择一种动物
版权所有 OpenJS Foundation 和 Node-RED 贡献者。保留所有权利。OpenJS Foundation 拥有并使用注册商标。有关 OpenJS Foundation 的商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS Foundation 商标列表 中列出的商标和徽标是其各自持有者的商标™或注册商标®。使用它们并不意味着与它们有任何关联或认可。
OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS Foundation 章程 | 商标政策 | 商标列表 | Cookie 政策