jQuery UI의 .autocomplete()
을 사용하여 입력란에 자동 완성 기능을 설정했습니다.자동 완성 결과 배열
입력을 시작하면 드롭 다운 결과의 배열 (또는 개체)에 어떻게 액세스 할 수 있습니까?
내 페이지의 다양한 다른 요소를 강조 표시하기 위해 결과를 사용하고 싶습니다.
jQuery UI의 .autocomplete()
을 사용하여 입력란에 자동 완성 기능을 설정했습니다.자동 완성 결과 배열
입력을 시작하면 드롭 다운 결과의 배열 (또는 개체)에 어떻게 액세스 할 수 있습니까?
내 페이지의 다양한 다른 요소를 강조 표시하기 위해 결과를 사용하고 싶습니다.
에 대한 이동합니다.
필터링 결과에 대한 논리를 정의하려면 source
옵션을 사용하십시오. 이 논리는 위젯의 소스 코드와 동일 할 것이다 :
$("#auto").autocomplete({
source: function (request, response) {
var results = $.ui.autocomplete.filter(source, request.term);
$("#results").text(results.join(", "));
response(results);
}
});
예 :http://jsfiddle.net/andrewwhitaker/27S6p/
원격 데이터 소스를 사용하는 경우, 이것이 당신의 AJAX 응답에 쉽게 통합 할 수 있습니다.
var __response = $.ui.autocomplete.prototype._response;
$.ui.autocomplete.prototype._response = function(content) {
__response.apply(this, [content]);
this.element.trigger("autocompletesearchcomplete", [content]);
};
$("#auto").autocomplete({
source: src
}).bind("autocompletesearchcomplete", function (event, results) {
$("#results").text(results.join(", "));
});
예 :http://jsfiddle.net/andrewwhitaker/V9Vun/
나는 것 여러 자동 완성 위젯을위한 솔루션을 필요로하는 경우
, 당신은 당신이 결합 할 수있는 특별한 이벤트를 마련하기 위해 _response
함수를 재정의 할 수 페이지에 여러 위젯이 있고 모든 위젯에 대해이 작업을 수행해야하는 경우에만이 솔루션을 사용하십시오.
이상적인 것은 아니지만 원하는 결과를 얻을 수 있습니다.
result
이벤트를 살펴보십시오. 자동 완성에서 보여주는 개체 배열을 줄 것입니다.
jQueryUI의 자동 완성에서도 가능합니까? – Thorsten
그래, 그렇게 생각하지 않아 ... – Randomblue
당신은
$('input[type="text"]').autocomplete({
source: availableTags,
open: function(event, ui) {
var autocomplete = $(this).data("autocomplete"),
menu = autocomplete.menu;
console.log(menu.element.children());
}
});
menu.element.children()
과 옵션에 액세스 할 수 있습니다 당신에게 HTML 목록 항목을 제공합니다. 쉽게 파싱 할 수 있으며 (HTML 제거) 배열을 만들어 강조 표시 기능에 전달할 수 있습니다.
Edit2가 : 다음 편집 예상 값을 반환하지 않습니다.
편집 대신 menu.element
에 접근, 당신은이 작업을 수행 할 수있는 방법은 두 가지가 있습니다 console.log(autocomplete.options.source);
그것은 작동하지만, y! 이 일을 더 잘 수행 할 수있는 방법이되어야합니다. ... – Randomblue
더 좋은 방법이 될 수 있습니다. 그러나 실제로 거기에 있다고 생각하지 않습니다 ...물론 더 자주 필요하면이 작업을 수행 할 수있는 플러그인을 작성할 수 있습니다. – Thorsten
나는 바보 였고, 훨씬 쉬운 해결책이 있습니다. 업데이트를 확인하십시오 :-) – Thorsten
너는 최고야. Superbe 대답! – Randomblue
@Randomblue : 감사합니다! 나는 이것이 내장되어 있었으면 좋겠다. 다행스럽게 도울 수있어! –