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

转载自:http://dada-fangfang.iteye.com/blog/695464


首先下载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代码好多了,简单实用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值