我试图在文本框中使用JQuery自动完成从用户填充的邮编文本框中显示自动填充的城市名称。使用MVC 3级联文本框自动完成Razor和JQuery
城市文本框自动完成必须由触发,重点是控制。但我仍然需要按下向下键来显示自动完成的城市。 此外,如果我更改邮政编码文本框中的值,自动完成将首先显示最后匹配的城市。 任何人都有一个想法,我应该做些什么来解决这些问题?
这是我的代码。 首先,查看:
<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);
}
仅供参考,我解决我的问题的先例(JSONResult函数从未被调用)通过修改getJSON函数中的url,因为我认为usi生成的路由ng“Url.Action”与我的global.asax文件中映射的路由不匹配。
感谢您的帮助,因为您已经注意到我是jquery的初学者!如果我的问题仍然存在,我会更新我的代码并发布下面的结果! – Flow 2012-08-13 13:18:34
我已更新了最新更改并附加了解释。 – Flow 2012-08-20 08:22:45