【发布时间】:2016-02-23 05:20:32
【问题描述】:
我正在尝试使用 @url.action 在我的 dropDownList 上添加 jquery 自动完成功能,但由于某种原因它不起作用。看起来我已经加载了所有必需的 jquery。我已经尝试了所有方法(至少是我在网站或谷歌中找到的)。
我的 HTML + js:
<input id="test" name="test" />
@section scripts
{
@Scripts.Render("~/bundles/jqueryval")
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/autocomplete.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#test').autocomplete({
source: '@Url.Action("GetCitiesForAutocomplete", "Students")'
});
});
</script>
}
我的控制者学生:
public JsonResult GetCitiesForAutocomplete(string term)
{
return Json(GetCities()
.Where(x=>x.Text.ToLower()
.Contains(term.ToLower())), JsonRequestBehavior.AllowGet);
}
private List<SelectListItem> GetCities()
{
return new List<SelectListItem>
{
new SelectListItem {Text = "Jerusalem", Value = "0"},
new SelectListItem {Text = "Haifa", Value = "1"},
new SelectListItem {Text = "Tel Aviv", Value = "2"},
new SelectListItem {Text = "Katzrin", Value = "3"},
new SelectListItem {Text = "Beer Sheva", Value = "4"},
new SelectListItem {Text = "Netanya", Value = "5"}
};
}
我的问题是: 我如何仅使用列表中的文本在我的下拉列表中自动完成。
例如: 如果我按下“je”-> 我会得到“耶路撒冷”
如果我按下 'te' -> 我会得到 'Tel Aviv'
谢谢。
【问题讨论】:
-
您使用的是 Jquery UI AutoComplete 还是 this one?
-
@MihirSolanki 我正在使用 Jquery UI AutoComplete
-
我认为您需要将
@Url.Action("GetCitiesForAutocomplete", "Students")的结果提取到 JSON 对象中并将其用作源。看起来,您有自动完成 dong 过滤以及 JSON 方法。
标签: javascript jquery asp.net-mvc autocomplete