jquery-ui自动完成,ASP MVC建议无法显示

时间:2010-06-01 12:06:10

标签: asp.net-mvc json jquery-ui jquery-ui-autocomplete

我一直试图让jquery-ui自动完成工作的一个简单例子。我有一个控制器设置来处理查询,它返回看起来有序的json,但我没有得到任何建议。

以下是我包含的js库:

<script type="text/javascript" language="javascript" src="/Scripts/jquery-1.4.1.js"></script>

<script type="text/javascript" language="javascript" src="/Scripts/jquery-ui-1.8.1.custom.min.js"></script>

 <link href="/Content/jquery-ui-1.8.1.custom.css" rel="stylesheet" type="text/css" />

这里是javascript和表单标签:

<script type="text/javascript">
    $(function () {

        $("#organization").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '/Organization/OrganizationLookup',
                    dataType: "json",
                    data: {
                        limit: 12,
                        q: request.term
                    }
                })
            },
            minLength: 2
        });
    });
</script> 

<div class="ui-widget"> 
    <label for="organization">Organization: </label> 
    <input id="organization" /> 
</div> 

我从我的控制器那里得到了一个看起来合理的json响应:

[
  {
    "id":"Sector A",
    "value":"Sector A"
  },
  {
    "id":"Sector B",
    "value":"Sector B"
  },
  {
    "id":"Sector C",
    "value":"Sector C"
  }
]

id和value似乎是autocomplete正在寻找的默认命名。

但我一点都不高兴。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

这里不是问题 - 你应该在javascript之前放置css。总是

您没有对返回值执行任何操作。您需要使用回调函数来获取该数据并对其执行某些操作。 (我相信“成功:”参数)。

答案 1 :(得分:2)

感谢Hogan的建议,我将以下回调函数添加到success参数中,我很高兴:

 success: function (data) {
                          response($.map(data, function (item) {
                              return {
                                  label: item.label,
                                  value: item.value
                              }
                          }))