我遇到一些来自jQueryUi的自动完成组件的麻烦。没有出现带有自动填充建议的列表。jQuery UI自动完成与Json不显示建议
我测试了以下代码(来自jQuery UI),尽管servlet发送JSON对象,“数据”变量正在讲故事,但组件仍未显示建议列表。
此外我尝试了一个简单的组件列表作为源(like here),它工作正常。
你有什么想法会发生什么?
<script>
$(function() {
var cache = {};
$("#bear").autocomplete({
minLength: 2,
source: function(request, response) {
var term = request.term;
if (term in cache) {
response(cache[ term ]);
return;
}
$.getJSON("/animals/MaintainMamals?operation=14", request, function(data, status, xhr) {
cache[ term ] = data;
response(data);
});
}
});
});
</script>
<form>
<div class="ui-widget">
<label for="bear">Bear name (type a piece of name): </label>
<input id="bear" name="bear" class="text ui-widget-content ui-corner-all"/>
</div>
</form>
在测试中使用
JSON对象(我试着用一个简单的JSON的东西只是一个字符串指的“名称”属性建,用相同的[衰]结果):
[
{
"id": 1234567,
"name": "Yogi Bear",
"activity": {
"handler": {
"interfaces": [
{}
],
"constructed": true,
"persistentClass": {},
"getIdentifierMethod": {
"clazz": {},
"slot": 2,
"name": "getCod",
"returnType": {},
"parameterTypes": [],
"exceptionTypes": [],
"modifiers": 1,
"root": {
"clazz": {},
"slot": 2,
"name": "getId",
"returnType": {},
"parameterTypes": [],
"exceptionTypes": [],
"modifiers": 1,
"override": false
},
"override": false
},
"setIdentifierMethod": {
"clazz": {},
"slot": 3,
"name": "setId",
"returnType": {},
"parameterTypes": [
{}
],
"exceptionTypes": [],
"modifiers": 1,
"root": {
"clazz": {},
"slot": 3,
"name": "setId",
"returnType": {},
"parameterTypes": [
{}
],
"exceptionTypes": [],
"modifiers": 1,
"override": false
},
"override": false
},
"overridesEquals": false,
"entityName": "com.zoo.Activity",
"id": 7105,
"initialized": false,
"readOnly": false,
"unwrap": false
}
}
}
]
为什么'''在每个标签中的'<'后? – Mooseman
您的源对象需要具有**标签**和或**值**属性才能使用该窗口小部件。你可以转换你的数据,以便这个小部件可以使用它,虽然 –
@Mooseman,是由于防止stackOverflow页面将其解释为它自己的标签。如果你有一个提示,以最好的方式做到这一点,我会很高兴知道:)。 – Alex