jq自动完成 autocomplete + struts后台读取数据???
jq autocomplete + struts后台读取数据???页面没有显示下拉框样式!
JSP代码:
<input id="userName" name="userName" type="text" class="contact" value="${userName}"/>
<script type="text/javascript">
/* 自动完成 */
var userNameList = [];
$.ajax({
type : 'POST',
url : '${ctx}/action/ajax!getUserName.action',
cache : false,
processData : true,
dataType : 'json',
success : function(result) {
userNameList = result;
return userNameList;
}
});
$(document).ready(function() {
$("#userName").autocomplete(userNameList,
{
width:300,
max: 10,
autoFill: false,
mustMatch: false,
matchContains: false,
scrollHeight: 200,
formatItem: function(data, i, total) {
return data[0];
}
}).result(function(event,item){
//todo
});
});
/* 自动完成 */
Action代码:
public void getUserName(){
List<String> names = userService.getUser();//可以取到集合
Struts2Utils.renderJson(names);
}
页面就是没有显示效果!
要么能提供一个自动完成的例子,要有数据库读取的例子,谢谢!
[最优解释]
" + row;
},
formatResult: function(row) {
return row;
}
});
});
[其他解释]
真心不会啊!
[其他解释]
哎,还是自己解决了:
$(document).ready(function() {
var data= [];
$.ajax({
type : 'POST',
url : 'xxx!xxx.action',
cache : false,
processData : true,
dataType : 'json',
success : function(result) {
data = result;
},
async: false
});
$("#entName").autocomplete(data,
max: 10,
matchContains: true,
autoFill: false,
scrollHeight: 200,
formatItem: function(row, i, max) {
return i + "
[其他解释]
“async: false”
为什么用同步而不考虑用异步呢?
在:
success : function(result) {
data = result;
}
这里面,直接完成 $("#entName") 的 autocomplete 不就好了?
还是说你是故意想在数据没初始化完毕之前,让用户不能操作?