【发布时间】:2012-08-09 02:37:38
【问题描述】:
我正在尝试使用 JQuery Autocomplete 在文本框中显示自动完成的城市名称,该名称来自用户填写的邮政编码文本框。
城市文本框自动补全必须由关注控件触发。但我仍然必须按向下键才能显示自动完成的城市。 此外,如果我更改邮政编码文本框中的值,自动完成将首先显示最后匹配的城市。 任何人都知道我应该如何解决这些问题?
这是我的代码。 一、View:
<script type="text/javascript">
$(function () {
$('#PostalCode').blur(function () {
$.getJSON("http://xxxxxxxxx/Cities/GetCities", { strPostalCode: $('#PostalCode').val() }, function (data) {
$("#autocompCities").autocomplete({
minLength: 0,
source: data
}).focus(function () {
$(this).autocomplete("search", "");
});
});
});
});
...
@Html.TextBoxFor(model => model.PostalCode)
@Html.TextBoxFor(model => model.City, new { id = "autocompCities" })
然后,在我的控制器中:
public JsonResult GetCities(string strPostalCode)
{
//retrieving data
var cities = from city in allCities
where city.Id == strPostalCode
select city.Name;
return Json(cities, JsonRequestBehavior.AllowGet);
}
仅供参考,我通过修改 getJSON 函数中的 url 解决了我的先例问题(从未调用过 JSONResult 函数),因为我认为使用“Url.Action”生成的路由与我的 global.asax 中映射的路由不匹配文件。
【问题讨论】:
标签: jquery asp.net-mvc json razor autocomplete