我一直试图让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正在寻找的默认命名。
但我一点都不高兴。有什么想法吗?
答案 0 :(得分:4)
这里不是问题 - 你应该在javascript之前放置css。总是
您没有对返回值执行任何操作。您需要使用回调函数来获取该数据并对其执行某些操作。 (我相信“成功:”参数)。
答案 1 :(得分:2)
感谢Hogan的建议,我将以下回调函数添加到success参数中,我很高兴:
success: function (data) {
response($.map(data, function (item) {
return {
label: item.label,
value: item.value
}
}))