这是我第一次尝试使用jQuery自动完成功能,我觉得我最常用,但自动完成功能不起作用。
我正在使用带有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);
}
}
输入正在POST到控制器操作,并通过我的存储过程进行过滤。我的脱节是如何将自动完成的数据实际返回到textarea。现在看起来我只是将数据返回到无处。
在用户中,同时返回用户名和ID。我不确定如何设置自动完成的值和标签。
感谢您的帮助
答案 0 :(得分:0)
根据documentation,您需要将JSON数据作为具有标签和值属性的对象数组返回。
[ { label: "Choice1", value: "value1" }, ... ]
在自动完成下拉列表中,将显示标签,在您选择一个选项后,相应的值将被设置到您的文本区域中。