2010-06-01 86 views
2

我一直在试图得到一个简单的jquery-ui自动完成工作的例子。我有一个控制器设置来处理查询,并返回看起来是有序的JSON,但我没有得到任何建议。jquery-ui自动完成与ASP MVC建议不显示

这里是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似乎是自动填充查找的默认命名对。

但我没有得到任何喜悦。有什么想法吗?

回答

4

不是这里的问题 - 你应该把JavaScript之前的CSS。总是。

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

+0

你说得对! 我已经走下了试图让我的JSON匹配数据结构的预期思路,我不需要做任何映射(因为我之前的一些更复杂的映射尝试在我早期失败了)的路径。我读过的不同文件说预期的是身份证/价值或标签/价值,但这并不奏效...... – adamnickerson 2010-06-01 12:58:45

+0

不错,drat那些盲人小巷 – Hogan 2010-06-02 21:10:36

2

由于霍根的建议下,我增加了以下回调函数的成功参数,我好去:

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