2012-11-09 42 views
4

我想使用安迪馬修自動填充jquery移動發現here。我的客戶服務有一個使用參數的方法。我不知道如何將我的客戶端調用更改爲接受參數?Jquery Mobile AutoComplete POST添加參數

這裏是我的客戶端調用:

//WHERE DO I PUT INPUT PARAMETERS?? 

    $("#searchBox").autocomplete({ 
       method: 'POST', 
       target: $('#suggestions'), 
       source: "ClientService.svc/REST/GetStates", 
       link: 'target.html?term=', 
       minLength: 1 

      }); 

這裏是我的服務:

[OperationContract] 
     [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)] 
     public List<string> GetStates(string y) 
     { 
      List<string> x= GetData(y); 
      return x; 

     } 
+0

你願意修改插件的源代碼嗎?你有沒有壓縮版本的插件? – davids

+0

是的,這似乎是什麼必須發生,但我不知道如何去做 –

+0

你想達到的目的是讓'autocomplete'發送另一個參數給服務器,除了這個術語,不是嗎? – davids

回答

3

source code服用後一看,似乎插件不允許將自定義POST參數。在文本框中輸入用戶鍵入一個叫term參數發送,但如果你不能改變你的服務,我會做什麼是修改代碼的以下部分:

... 
} else { 
$.ajax({ 
    type: settings.method, 
    url: settings.source, 
    // Change the following line 
    // data: { term: text }, 
    // for: 
    data: { y: text }, 
... 

這是很容易找到,因爲整個插件只有一個$.ajax調用。

+0

如何在上面的自動完成調用中指定「文本」我只有「方法」,「目標」,「源」 ..etc –

+0

'text'將是用戶在該框中鍵入的內容,如果這是您想要發送的內容,則不需要修改任何其他內容 – davids

+0

將調用從POST更改爲GET也必須完成。由於某種原因不起作用..感謝您的幫助 –