실제로 가능합니다. 이 작업을 수행하기 위해 자동 완성 위젯의 이벤트 (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
정말 대단한 답변입니다. 고마워! –