2011-10-11 3 views
0

나는 Jquery와 함께 초보자 다. 그래서 나는 명백한 무엇인가 놓치고 있을지도 모른다.JQuery 자동 완성 1.8의 추가 검색어.

JQuery의 1.8 자동 완성 위젯을 사용하여 검색을 검색하고 있습니다. 사용자가 3자를 입력하면 기능이 트리거됩니다. 아래 함수에서 "용어"는 거리 이름의 문자를 나타냅니다.

그러나 사용자는 이미 우편 번호와 집 번호를 입력 했으므로 그 값을 쿼리에 전달하고 싶습니다. 그 값들을 어떻게 보내는가? 나는 단 하나의 "용어"를 어떻게 보내는 지 알아낼 수있다. (이 중요한 경우에, 나는 ASP.Net MVC3를 사용하고 있습니다)

$("#SearchStreet").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/VoterAndPollingPlaceLookup/PollingPlaceSearch/FindStreet", 
       dataType: "json", 
       data: { 
        term: request.term 
       }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          value: item 
         } 
        })); 
       } 
      }); 
     }, 
     minLength: 3, 
     delay: 0 
    }); 

편집 : 도움이 후 아래 잘 작동 나의 새로운 코드입니다! 호출되는 내 컨트롤러 액션 :

다음
Public Function FindStreet(term As String, searchZip As String, searchHouse As String) As JsonResult 
      .....returns results 
     End Function 

업데이트 된 JQuery와있다

나는 다음과 같은 업데이트를 만들었습니다.

$("#SearchStreet").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/OnlineVoterRegistration/ApplicationDetails/FindStreet", 
       dataType: "json", 
       data: { term: request.term, 
         searchZip: $("#SearchZip").val(), 
         searchHouse: $("#SearchHouse").val() } 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          value: item 
         } 
        })); 
       } 
      }); 
     }, 
     minLength: 3, 
     delay: 0 
    }); 
+0

searchZip 및 searchHouse HTML 입력 또는 .net 컨트롤입니까? –

+0

이들은 HTML 입력 필드의 ID입니다. – user158017

+0

문제점을 발견했습니다. 자본화. (sheepish look my face, now. :-)) "searchZip"이 아닌 "SearchZip"이어야한다고 밝혀졌습니다. 내 질문을 수정하여 고정 코드를 보여 드리겠습니다. – user158017

답변

1

아약스 요청에 대한 data 매개 변수는 그래서 당신이해야 할 모든 객체에 다른 속성을 추가하는 JSON 객체를 받아들입니다. 이처럼 : 당신의 컨트롤러 액션에서

$("#SearchStreet").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/VoterAndPollingPlaceLookup/PollingPlaceSearch/FindStreet", 
       dataType: "json", 
       data: { 
        term: request.term, 
        zipCode: 'zip code', 
        houseNumber: 'house number' 
       }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          value: item 
         } 
        })); 
       } 
      }); 
     }, 
     minLength: 3, 
     delay: 0 
    }); 

당신은 매개 변수 zipCodehouseNumber을 추가해야합니다.

+0

감사합니다 - 나는 그 총을 줄거야! – user158017

+0

이 문제가 있습니다. 요청 개체에서 우편 번호와 집 번호의 값을 얻으려면 어떻게해야합니까? 가장 최근의 방법은 여러 가지입니다. 데이터 : { term : request.term, searchZip : $ ("# searchZip") .Val(), searchHouse : $ ("# searchHouse"). val() }, – user158017

+0

두 개의 매개 변수를 컨트롤러 동작에 추가하면 요청에서이를 받게됩니다. asp.net mvc는 JSON 객체 속성을 액션 매개 변수에 매핑하는 방법을 알고 있습니다. 다시 말해 컨트롤러 액션 서명은 다음과 같이 보일 것입니다 :'public ActionResult FindStreet (string term, string zipCode, string houseNumber)' – devnull