これは確かに可能です。あなたはこれを実現するためにオートコンプリートウィジェットのイベント(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);
}
});
ここにデモ:http://jsfiddle.net/andrewwhitaker/kCkga/
注:
- これは非常に限らデモです。文字列の途中でオートコンプリートしようとするとうまくいきません。
- この例を完成させるには、入力フィールドにカーソルの位置を見つけてそこにテキストを挿入する作業が必要です。
- おそらく他のバグかもしれませんが、間違いなく実行可能だと思います。これはあなたが始めることを願っています。
グレート!これはそのトリックを行うように見えます。私は数日後にそれを混乱させるつもりで、他に何か質問があれば対応します。それがうまくいったら答えとしてマークします!ありがとう! – mikesir87
本当に素晴らしい答え。ありがとう! –