2012-11-26 3 views
1

특정 시간에 ajax 자동 완성을 호출하는 방법은 무엇입니까? 은 여기 내 코드ajax 자동 완성 함수를 호출하는 방법은 무엇입니까?

function auto(x){ 


x.autocomplete('ajax/getFriends',{ 
     max:500, 
     width:300, 
     minChars:2, 
     autoFill: false, 

     formatItem: formatItem, 
     formatResult: formatResult 
     }); 

     function formatItem(row) { 
       return row[0]; 
       //return row[0] + " (<strong>id: " + row[1] + "</strong>)"; 
     } 
     function formatResult(row) { 
      return row[0].replace(/(<.+?>)/gi, ''); 
     } 

     $("#comment").result(function(event, data, formatted) { 
      $("#test1").val(data[1]); 
      $("#test2").val(data[2]); 
     }); 
    } 

이지만 오류 x.autocomplete은 내가 위의 호출 오전

auto("string"); 

처럼 기능 중 하나가 어떻게 해결하는 데 도움이 수 없습니다 말한다 이 하나

미리 감사드립니다 실수가 있으면 실례지만 영어로는 좋지 않아요

+0

'autocomplete'는 문자열의 한 방법이 아닙니다. –

+0

@asad 감사하지만 내 문제는 여기에 사용자가 '@'또는 '#'을 입력하면 자동 완성 기능 만 수행합니다. – naveen

+0

공식 jQueryUI 자동 완성 플러그인을 사용하여 자동 완성 기능을 입력 필드에 바인딩합니까? – Prynz

답변

0

jQuery 자동 완성이 모두 작동하는 방식을 혼란스럽게 생각합니다. 자동 완성을 문자열에 첨부하고 제안을위한 HTML 요소를 작성하는 것 같습니다. 이것은 자동 완성 기능이 작동하는 방식이 아닙니다.

입력란에 자동 완성 기능을 첨부하십시오. 그런 다음 무언가가 입력 될 때 자동 완성 기능이 입력에 자동으로 실행됩니다. 그것은 그것이 어떻게 만들어 졌는지입니다. 바로 자바 스크립트에서이 작업을 수행

<input type="text" id="myAwesomeInputBox"/> 

은 (아약스와 함께) 자동 완성을 결합하려면이 입력 필드 :

그럼 당신은 당신의 HTML 코드에서 myAwesomeInputBox에 동일한 ID를 입력 상자를 가지고 예를 들어 가정 해 봅시다

$("#myAwesomeInputBox").autocomplete({ 
       source: function(request, response) { 

         // request.term is the input in the textbox, encode for security reasons 
         var input = encodeURI(request.term); 

         $.ajax({ 

          // your ajax endpoint 
          url: 'ajax/getFriends', 

          // the request method, modify to your actual method 
          type: 'GET', 

          // whatever data you want to pass to your endpoint. 
          // I'm assuming at least the input (with key userInput here) 
          // and maybe the limit of the elements in the response array 
          // the server should send back 
          data: {userInput: input, limit: 500}, 

          // what to do on success (process the response) 
          success: function(data){ 

           // assuming your ajax endpoint returns a JSON encoded array with the suggestions as a response 
           var responseArray = $.parseJSON(data); 

           // pass the decoded response array to the jquery defined response method for autocomplete 
           response(responseArray); 
          }, 

          // what to do if the server returns an error 
          error: function(jqXHR, textStatus, errorThrown){ 
           // pass an empty suggestions array maybe? 
           response(new Array()); 
          } 
          }, 'json'); 
        } 
      }); 

나를 위해 까다로운 부분은

response(responseArray); 

하지만 한 번이었다 그것을 아주 이해할 수 있는지 검토하십시오. 추가 처리를 위해 jQuery 자동 완성 처리기에 배열을 전달하는 것입니다.

jQuery의 이전 버전이 ajax 자동 완성을 처리하는 방법을 잘 모르겠지만 버전 1.8.0 (및 그 이상)이이를 처리하는 방법입니다.

관련 문제