前台主要代码: jsp中 :
$("#ypsms_ypbmchuz").autocomplete("<c:url value='/med/autoComplete'/>",{
delay:5,//延迟10秒
max:300,//最多5条记录
minChars:2,
matchSubset:1,
matchContains:1,
cacheLength:10,
matchContains: true,
scrollHeight: 450,
width:750,
extraParams:
{keyWords: function()
{
return $("#ypsms_ypbmchuz").val(); //url的参数传递,,给上面的url传递的参数
}
},
dataType:'json',//返回的数据类型为JSON类型
//加入对返回的json对象进行解析函数,函数返回一个数组 //对于返回的json对象,需要自己进行处理下;
parse: function(data) {
var rows = [];
for(var i=0; i<data.length; i++){
rows[rows.length] = {
data:data[i],
value:data[i].code,
result:data[i].name
};
}
return rows;
},
formatItem: function(row, i, n) { ///如下的就是对自动提示的下拉的 一些css样式;
var retStr =
"<span style=' display:block; float:left; width:150px;font-size: 14px;'>"+row.code+"</span>"+
"<span style=' display:block; float:left; width:300px;font-size: 14px;'>"+row.name+"</span>"+
"<span style=' display:block; float:left; width:200px;font-size: 14px;'>"+row.spec+"</span>" ;
return retStr;
}
}).result(function(event, getitem, formatted) {//把返回的结果内容显示在其他文本框上
$("#ypsms_ypbm").val(getitem.code);
$("#ypsms_drugId").val(getitem.id);
});
后的代码: java中 :这里用的是springmvc的 json返回,当然你可以用其他的方式;
返回json样式的就行了;
@RequestMapping(value="/med/autoComplete")
@ResponseBody
public List<DataInfo> drugInfoAutoComplete(String keyWords){
List<DataInfo> retList = dataInfoService.listDataInofsByKeysWords(keyWords);
logger.info("信息查询,自动补全======>查询结果="+(retList==null? 0 : retList.size()));
if(! CollectionUtils.isEmpty(retList)) {
///遍历加入
DataInfotmp = newDataInfo();
tmp.setCode("");
tmp.setName("");
tmp.setSpec("");
retList.add(tmp);
}
return retList;
}
注意要导入的css和 autocomplete.js:
<link href="<c:url value='/styles/autocomplt/jquery.autocomplete.css'/> " rel="stylesheet">
<script src="<c:url value='/styles/autocomplt/jquery.autocomplete.js'/>" type="text/javascript"></script>