2011-01-23 2 views
3
나는 JQuery와 UI 자동 완성을 사용하고

,이의 jQuery 자동 완성 '검색'방법

 
var opt_source = {...} 
var options = { 
      minLength: 0, 
      source: opt_source, 
      search: "aPreDefinedString" 
     }; 
$(".searchable_input").autocomplete(options); 

아래의 코드 내 understanding는 지금 aPreDefinedString 검색해야 할이다; 이는 발생하지 않으며 로컬 소스에서 userInput을 검색합니다. 누군가 내가 잘못 가고있는 것을 지적 할 수 있습니까?

+0

자동 완성 이외의 용도로 jQuery UI 라이브러리를 사용하고 있습니까? – jondavidjohn

+0

@jondavidjohn, 탭, 몇 애니메이션. –

+0

좋아요, 좋은데, 사람들이 전체 UI 라이브러리를 활용하는 것을 많이 보았고 제 3 자 플러그인을 통해 가질 수있는 기능 만 사용합니다. 한 가지를 지적 하겠지만 UI를 활용하는 것처럼 보입니다. – jondavidjohn

답변

6

나는 위젯에서 searcheventsearchmethod을 혼합하고 있다고 생각합니다. 위젯을 초기화하는 데 사용되는 options 오브젝트 (수행중인 작업)에서 이벤트에 대한 이벤트 핸들러를 지정할 수 있습니다. 당신이 search방법를 부를 것이다

방법은 다음과 같이이다 :

$(".searchable_input").autocomplete("search" , "aPreDefinedString"); 

이 수동으로 자동 완성 검색합니다.

+1

참으로. 당신이 이것을 타이핑하는 동안, 나는 이것을 준비하고 있었다 : http://jsfiddle.net/D2KJW/ – karim79

+0

고마워, * * 진행. 이후 문자열을 userInput으로 되 돌리면 문자열에 초기 키 입력을 검색 할 수 있습니다. @ karim, 바이올린을 완료 할 수 있습니까? –

+0

@RisingSun : 성취하려는 것은 무엇입니까?사용자가 입력 한 것과 상관없이 항상 동일한 문자열을 검색하도록 검색 하시겠습니까? –

7

OK, 이것은 내가 이것은 JQuery와 UI에서

(나는 그들이 향후 버전에서 휴식 그나마 희망) 붙박이 검색을 대체 할 것으로 보인다

 
var opt_source = {..}; 

var options = { 
      minLength: 0, 
      source: function(request, response){ 
       response(opt_source); 
      } 
     }; 
$(".searchable_input").autocomplete(options); 

일을했습니다 방법입니다 documentation

세 번째 변형 인 콜백은 유연성을 제공하며 모든 데이터 소스를 자동 완성에 연결하는 데 사용할 수 있습니다. 콜백은 두 개의 인수를받습니다.

현재 텍스트 입력에있는 값을 참조하는 "term"이라는 단일 속성을 가진 요청 개체입니다. 예를 들어 사용자가 도시 필드에 'new yo'를 입력하면 자동 완성 용어는 'new yo'와 같습니다. 응답 콜백. 단일 인수에 사용자에게 제안 할 데이터가 들어 있어야합니다.

이 데이터는 제공된 용어를 기반으로 필터링되어야하며 간단한 로컬 데이터 (String-Array 또는 label/value/both 속성을 갖는 Object-Array)에 대해 위에서 설명한 형식 일 수 있습니다. 요청 중에 오류를 처리하기 위해 사용자 정의 소스 콜백을 제공 할 때 중요합니다. 오류가 발생하더라도 항상 응답 콜백을 호출해야합니다. 위젯이 항상 정확한 상태를 유지하도록 보장합니다.

+0

+1 : 이것은 합리적인 방법이며, jQueryUI는 api 기능을 근본적으로 변경하지 않으므로 너무 걱정하지 않아도됩니다. –

+0

죄송하지만 지금까지 귀하의 의견을 잡기 위해, +1 그것을 해결 :) – karim79

0

내 코드는 다음과 같습니다.

var availableTags = ['aa','bb','cc']; 

$("#filterinput").autocomplete({ 
         source: availableTags, 
         autoFocus: true, 
        }); 

$("#filterinput").on("autocompletesearch", function(event, ui) { 
         console.log($(this).val()); 
        });