2015-10-22 147 views
0

這是我第一次嘗試使用jQuery自動完成,我覺得我是那裏的大部分方式,但自動完成不起作用。jQuery UI自動完成POST輸入到控制器,但不自動完成

我使用了data-autocomplete-url一個textarea的輸入傳遞給我的控制器操作:

<textarea id="assign-to" rows="1" data-autocomplete-url="@Url.Action("AutoCompleteUsername")"></textarea> 

這是應該允許的自動完成工作?:

$(document).ready(function() { 
    $("*[data-autocomplete-url]") 
     .each(function() { 
      $(this).autocomplete({ 
       source: $(this).data("autocomplete-url") 
     }); 
    }); 
}); 

控制器動作:

public ActionResult AutoCompleteUsername(string term) 
    { 
     using (var entity = new TestEntities()) 
     { 
      var users = entity.uspSearchUserByName(term).ToList(); 

      return Json(users, JsonRequestBehavior.AllowGet); 
     } 
    } 

輸入被髮送到控制器動作並且正在f通過我的存儲過程進行過濾。對我而言,斷開連接的原因是自動完成的數據實際上是如何返回到textarea的。現在看來,我只是將數據返回到了哪裏。

在用戶中,同時返回用戶名和ID。我不確定如何設置自動填充的值和標籤。

感謝您的幫助

回答

0

按照documentation,你需要與標籤和值屬性的對象數組返回JSON數據。

[ { label: "Choice1", value: "value1" }, ... ] 

在自動完成下拉列表中,該標籤將顯示,你選擇一個選項後,相應的值將被設置成你的文字區域。