mik*_*r87 5 jquery autocomplete
我正在构建一个应用程序,并希望在textarea中进行自动完成,就像Twitter/Facebook如何使用@ [name].但是,当我输入[TID:x]时,我想触发它,其中x是任意长度的整数.
看到Twitter/Facebook在您点击@符号后开始自动完成,然后将文本数据发送到自动完成后.有没有人知道jQuery UI插件(或任何其他插件)是否可以做这样的事情?
这确实是可能的。您可以利用自动完成小部件的事件(search和select)来完成此操作:
var triggered = false;
var trigger = "TDI:";
$("input").autocomplete({
source: [...],
search: function() {
if (!triggered) {
return false;
}
},
select: function(event, ui) {
var text = this.value;
var pos = text.lastIndexOf(trigger);
this.value = text.substring(0, pos + trigger.length) +
ui.item.value;
triggered = false;
return false;
},
focus: function() { return false; },
minLength: 0
}).bind("keyup", function() {
var text = this.value;
var len = text.length;
var last;
var query;
var index;
if (triggered) {
index = text.lastIndexOf(trigger);
query = text.substring(index + trigger.length);
$(this).autocomplete("search", query);
}
else if (len >= trigger.length) {
last = text.substring(len - trigger.length);
triggered = (last === trigger);
}
});
Run Code Online (Sandbox Code Playgroud)
演示在这里: http: //jsfiddle.net/andrewwhitaker/kCkga/
笔记:
小智 5
我已经为它创建了一个插件,它使用了jQuery-UI Autocomplete和Andrew的例子(感谢你).
网址:https://github.com/experteer/autocompleteTrigger
演示:http://jsfiddle.net/dmattes/2YRgW/1/
$('input,textarea').autocompleteTrigger({
triggerStart : '@',
triggerEnd: '',
source: [
"Asp",
"BASIC",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
]
});
Run Code Online (Sandbox Code Playgroud)
最好,丹尼尔