我已经在我的应用程序中实现了邮政编码的自动完成功能。我在 Firebug 中进行调试,我在控制台中看到该操作正在执行,并且我在结果列表中获得了邮政编码列表,但在调试时实际列表未显示。
这是我的客户控制器中的操作:
//the autocomplete request sends a parameter 'term' that contains the filter
public ActionResult FindZipCode(string term)
{
string[] zipCodes = customerRepository.FindFilteredZipCodes(term);
//return raw text, one result on each line
return Content(string.Join("\n", zipCodes));
}
这是标记(缩写)
<% using (Html.BeginForm("Create", "Customers")) {%>
<input type="text" value="" name="ZipCodeID" id="ZipCodeID" />
<% } %>
这是我加载脚本的顺序:
<script type="text/javascript" src="/Scripts/jquery-1.4.2.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.core.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.widget.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.position.js"></script>
<script type="text/javascript" src="/Scripts/jquery.ui.autocomplete.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#ZipCodeID").autocomplete({ source: '<%= Url.Action("FindZipCode", "Customers") %>'});
});
</script>
有什么明显的我失踪了吗?就像我说脚本正在获取邮政编码列表一样,当我测试时它们不会显示在我的页面上。
编辑:我添加了一张图片,显示了我在 firebug 中看到的内容 - 似乎我找回了我的邮政编码,但不会显示下拉菜单。
我还更新了我的文本框,使其位于 ui-widget div 中,如下所示:
<div class="ui-widget">
<input type="text" name="ZipCodeID" id="ZipCodeID" />
</div>
这是我正在使用的脚本:
<script type="text/javascript">
$(document).ready(function() {
$("#ZipCodeID").autocomplete('<%= Url.Action("FindZipCode", "Customers") %>');
});
</script>