2012-03-07 4 views
1

텍스트 상자에 jQuery 자동 완성 기능이 있습니다. jQueryUI 자동 완성 원격 소스가 잘못 표시되었습니다

$("#SearchBox1").autocomplete({ 
    autoFocus: false, 
    source: "Home/AutoComplete", 
    select: function (event, ui) { 
    alert(ui.item.label); 
    } 

URL이 경로를 포함하지 않는

이, JQuery와 자동 완성이 작동하지만 URL은 localhost/home/GoToPage/?page=2 같은 것을 포함하는 경우, 다음 자동 완성 /home/GoToPage/Home/AutoComplete를 사용하려고 : 자동 완성을 초기화하는 코드입니다. 이 시점에서 불완전한 경로를 사용하고 있기 때문에 자동 완성 기능이 완전히 손상되었습니다.

이 문제를 해결할 수있는 좋은 방법이 있습니까?

+0

에서 정말 문맥을하지 않는됩니다. 소스를 "on-the-fly"로 변경합니까 아니면 두 가지 소스가있는 두 개의 자동 완성 인스턴스에 대해 이야기하고 있습니까? –

+0

'source'매개 변수에서 url 대신 function을 사용할 수 있습니다. – MadRabbit

+0

@DidierGhys - 소스가 변경되어서는 안됩니다. 서버에는 하나의 AutoComplete 소스 만 있으며, jQueryUI AutoComplete는 항상 같은 소스를 가리켜 야합니다. 문제는 사용하는 소스가 잘못된 URL로 변경된다는 것입니다. – sveatch42

답변

0

한 가지 가능한 솔루션은 MadRabbit의 코멘트를 기반으로, 댄 Wellman의 jQueryUI 자동 완성 튜토리얼 http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/

$("#SearchBox1").autocomplete({ 
     autoFocus: false, 
     source: function (request, callback) { 
      //pass request to server 
      $.getJSON("Home/AutoComplete?term=" + request.term, request, function (responseData) { 

       //create array for response objects 
       var suggestions = []; 

       //process response 
       $.each(responseData, function (i, val) { 
        suggestions.push(val); 
       }); 
       //pass array to callback 
       callback(suggestions); 
      });    
     },  
     select: function (event, ui) { 
      $('#SearchBox1').val(ui.item.label);       
    } 
}); 
관련 문제