Jquery自动填充不显示结果" $ map未定义"

时间:2015-01-21 13:25:48

标签: asp.net-mvc jquery-ui visual-studio-2013 jquery-autocomplete

我正在尝试设置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>
}

1 个答案:

答案 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);
}