2011-12-05 3 views
3

내 사이트에서 jqueryUI 자동 완성 위젯을 사용하고 있습니다.jqueryUI 자동 완성 옵션 필터링하기

  • 사과 ... 난 내 데이터베이스에 다음과 같은 항목이 말
  • 원숭이
  • 아브라함
  • 땅 돼지

"A"자동 완성 위젯에서 난 것을 얻을 내가 입력 내 입력 필드 아래에 목록. 항목을 선택하면 입력 필드 아래의 UL에 추가되고 입력 필드가 지워지도록 추가 코드를 작성했습니다.

그래서 "a"를 입력하면 해당 목록이 표시되고 apple을 선택합니다. Apple은 현재 입력란 아래의 UL에있는 LI입니다. 이제 "a"를 다시 입력하면 목록이 다시 표시됩니다. 여기에 내 문제가 있습니다.

두 번째로 사과를 제외하고 모든 것을 보여주고 싶습니다.

나는 두 개의 서로 다른 장소에서이 작업을 수행하는 방법을 알고 싶어요

:

1 - 대신 보낼 수 있도록 내가, 서버에 GET 쿼리를 발생 이벤트를 차단하는 방법을 알고 싶어요 "q = a"를 입력하면 서버에 "q = a & exclude = apple, foo, bar"를 보낼 수 있습니다. 그런 다음 목록 서버 쪽을 필터링하면 모든 것이 잘됩니다.

2 - 옵션 목록을 만드는 이벤트를 차단하는 방법을 알고 싶습니다. 그렇게하면 "apple, ape, etc"옵션을 표시 할 수 있고 그 목록에서 "apple"을 잘라 낼 수 있습니다.

문서의 이벤트를 볼 수 있지만 위에서 설명한 목표를 달성하는 방법을 잘 모르겠습니다.

감사합니다.

답변

2

자동 완성 위젯의 source 옵션에 대한 함수를 정의하여이 두 가지를 모두 수행 할 수 있습니다. 거기에서 $.ajax으로 AJAX 요청을 직접 수행합니다. 난 그냥 ul 이미 항목을 추출하여 당신이 제외 된 항목을 만들 것이라고 상상

$("input").autocomplete({ 
    source: function (request, response) { 
     var exclude = /* build excluded items list. */; 
     var term = request.term; 

     $.ajax({ 
      url: "server.php", 
      data: { q: term, exclude: exclude }, 
      dataType: "json", 
      success: function(data) { 
       /* Here, you could accomplish #2 by filtering items out of data */ 
       /* You must call the supplied callback to let the widget know what to suggest */ 
       response(data); 
      } 
     }); 

    } 
}); 

:처럼 뭔가.

+0

놀라운 - 감사합니다. – chrispitzer

관련 문제