minChars: 0, //表示在自动完成激活之前填入的最小字符,这里我们设置为0,在我们双击文本框,不输入字符的时候,就会把数据显示出来
width: 220, //下拉框的宽度,default:input元素的宽度
max: 10, //下拉项目的个数,default:10
scrollHeight: 300, // 下拉框的高度, Default: 180
scroll: true, //当结果集大于默认高度时,是否使用滚动条,Default: true
multiple: false, //是否允许输入多个值. Default: false
autoFill: false, // 是否自动填充. Default: false
multipleSeparator: " ", //输入多个字符时,用来分开各个的字符. Default: ","
matchCase:false, //是否开启大小写敏感
selectFirst:true, // 如果设置成true,下拉列表的第一个值将被自动选择, Default: true
matchSubset:true, //是否启用缓存
cacheLength: 10, //缓存的长度.即缓存多少条记录.设成1为不缓存.Default: 10
delay: 20, //击键后的延迟时间(单位毫秒).Default: 远程为400 本地10
mustMatch:false, //如果设置为true,只会允许匹配的结果出现在输入框,当用户输入的是非法字符时,将被清除, Default: false
matchContains:true, //决定比较时是否要在字符串内部查看匹配.Default: false
formatItem: function(row, i, max) { }
//结果中的每一行都会调用这个函数,返回值将用LI元素包含,显示在下拉列表中. 三个参数(row, i, max): 返回的结果数组, 当前处理的行数(从1开始), 当前结果数组元素的个数. Default: none, 表示不指定自定义的处理函数.
formatResult : function(row, i, max) { }
//和formatItem类似,但可以将将要输入到input文本框内的值进行格式化.同样有三个参数,和formatItem一样.Default: none,表示要么是只有数据,要么是使用formatItem提供的值.
formatMatch: function(row) { }
//对每一行数据使用此函数格式化需要查询的数据格式. 返回值是给内部搜索算法使用的. 参数值row
result (function(event, data, formatted){}) //此事件会在用户选中某一项后触发,参数为:event: 事件对象, data: 选中的数据行,formatted:formatResult函数返回的值;
例如: $("#d").result(function(event, data, formatted){alert(formatted);})
extraParams (Object):
//为后台(一般是服务端的脚本)提供更多的参数.和通常的作法一样是使用一个键值对对象.如果传过去的值是{ bar:4 },将会被autocompleter解析成my_autocomplete_backend.php?q=foo&bar=4 (假设当前用户输入了foo). Default: {}
引用插件:
页面调用:(主要是文本框要有对应的id即可)
JavaScript代码:
//文本框模糊查询
$("#supplierName").autocomplete("designated-supplier-goods!likeagreementSupplierName.do", { //当用户输入关键字的时候 ,通过 url的方式调用action的findStoreProdctListNameForJson方法
minChars: 1, //最小显示条数
max: 12, //最大显示条数
cacheLength :0,//cacheLength (Number): 缓存的长度.即对从数据库中取到的结果集要缓存多少条记录.设成0为不缓存.Default: 10
autoFill: false ,//自动填
scrollHeight: 300, //提示的高度,溢出显示滚动条
matchContains: true, //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
dataType : "json", //指定数据类型的渲染方式
multiple:false,//是否允许输入多个值即多次使用autoComplete以输入多个值. Default: false
width: 545, //下拉框的宽度,default:input元素的宽度
extraParams:{
supplierName: function() {
return $("#supplierName").val(); //url的参数传递
}
},
//进行对返回数据的格式处理
parse: function(data) {
var rows = [];
for(var i=0; i" + row + " ";
},
formatMatch: function(item) {
return item.itemid;
},
formatResult: function(item) {
return item.itemid;
}
});
public void likeagreementSupplierName() throws UnsupportedEncodingException {
String newProductName="";
if(StringUtils.isNotBlank(supplierName))
// newProductName = new String(supplierName.getBytes("ISO-8859-1"),"utf-8"); // 解决乱码
likeList=iDesignatedSupplierGoodsBusiness.getLikSupplierName(supplierName);
List
@Override
public List getLikSupplierName(String newProductName) {
StringBuffer sql=new StringBuffer();
sql.append("SELECT S.SUPPLIER_GOODS_NAME FROM GP_T_DESIGNATED_SUPPLIER_GOODS S WHERE S.SUPPLIER_GOODS_NAME LIKE '%"+newProductName+"%'");
List queryListByHql=(List) this.baseDAO.queryListBySql(sql.toString(), null);
return queryListByHql;
}
遇到的常见问题:http://blog.csdn.net/wu920604/article/details/76914444
所需资料下载(js是改过的,兼容火狐支持中文查询):http://download.csdn.net/detail/wu920604/9925040