自己做的jquery的autocomplete的一个例子

首先下载jquery.js和jquery.autocomplete.js
注意:jquery.js 要放在jquery.autocomplete.js前面。
还有个样式jquery.autocomplete.css , 随意下载。

首先js代码如下
$().ready(function() {
$("#searchText").autocomplete("$! {request.contextPath}/hrHiPersons!ajaxSelectPerson.action", {
minChars: 0,
max: 12,
autoFill: true,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
formatItem: function(item) {
return item[0];
}
});
});
struts2的url应该不陌生吧
autocomplete的参数,这里不写了,可以参考
http://chenling1018.blog.163.com/blog/static/148025420101250354380/
他写的很详细,我也测过,基本都描述的差不多.

以前js方法的item参数,就是后台返回的json流,一下是java代码
public String ajaxSelectPerson(){
try {
String search = getRequest().getParameter("q");
if(search==null||search.length()==0) return null;
List<String> names = new ArrayList<String>();
names.add("张三");
names.add("李四");
names.add("王五");
getResponse().setCharacterEncoding("UTF-8");
JSONArray json = JSONArray.fromObject(names);
PrintWriter out = getResponse().getWriter();
out.print(json);
out.flush();
out.close();
return null;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
他默认是get提交,而且默认接受的参数是q,一般不用修改。
其次主要是乱码的问题,ajax的传输都是utf-8,所以我们尽量都转成utf-8(tomcat,jsp),然后把response也设置成utf-8,这样中文就没问题了。
还有个忘了说, 需要修改autocomplete的源码,主要是为了中文的输入识别问题
在199-200行
$(input.form).unbind(".autocomplete");

修改为:
$(input.form).unbind(".autocomplete").bind("input", function() {
onChange(0, true);
});

OK了,效果还是不错的,比原先手写的jquery代码好多了,简单实用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值