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 不就好了?
还是说你是故意想在数据没初始化完毕之前,让用户不能操作?