2011-10-11 67 views
0

我是一個Jquery的新手,所以我可能會錯過一些明顯的東西......。JQuery自動完成中的其他搜索條件1.8

我正在使用JQuery的1.8自動完成小部件進行搜索搜索。用戶輸入3個字符後,該功能被觸發。所以下面的函數中的「term」表示街道名稱中的字符。

但是,用戶將已經輸入他們的郵政編碼和門牌號碼,我希望這些值也傳遞給查詢。我如何發送這些值呢?我只能弄清楚如何發送單個「術語」。

(如果它的事項,我使用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

我發現了這個問題。資本。 (不好意思看我的臉,現在。:-))原來它應該是「SearchZip」而不是「searchZip」。我將編輯我的問題以顯示固定代碼。 – user158017

回答

1

data參數Ajax請求接受一個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

遇到問題。如何從請求對象獲取郵政編碼和門牌號碼的值?我嘗試了各種方法 - 最近的是這樣的:data:{ term:request.term, searchZip:$(「#searchZip」)。val(), searchHouse:$(「#searchHouse」)。 val() }, – user158017

+0

如果您將兩個提到的參數添加到控制器操作中,您將從請求中接收它們。 asp.net mvc知道如何將JSON對象屬性映射到操作參數。換句話說,你的控制器動作簽名應該看起來像這樣:'公共ActionResult FindStreet(字符串術語,字符串zipCode,字符串houseNumber)' – devnull