我正在尝试设置jquery自动完成功能,但是当我输入文本时,没有任何建议出现。
该项目是MVC .NET VS2013。
在Chrome中使用调试器我可以看到正在生成正确的建议,但不会在页面上显示。在firefox中使用firebug也有相同的结果。
另外,我收到“$ map not defined”错误。看起来这意味着jquery-ui没有被加载,但我不知所措,因为我尝试将它作为jquery包的一部分包含在_layout中,因为它是自己的包,并且直接在view,但没有任何效果(jquery-ui总是在jquery.js之后引用)。
是否应该在MVC项目中引用jquery-ui?
Jquery的:
<p>
@Html.TextBox("Restaurant")
<input type="submit" id="Restaurant" value="Submit" />
</p>
@section scripts {
<section class="scripts">
<script type="text/javascript">
$(document).ready(function () {
$("#Restaurant").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Map/Search",
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
response($map(data, function (item) {
return {
label: item.value,
value: item.label
};
}
))
}
})
},
messages: {
noResults: "", results: ""
}
});
})
</script>
</section>
}
答案 0 :(得分:0)
更改代码的这一部分
response($map(data, function (item) {
到
response($.map(data, function (item) {
或者您可以将成功回调函数重构为:
success: function (data) {
var items = $.map(data, function (item){
return {
label: item.value,
value: item.label
};
});
response(items);
}