Combogrid 是一个jQuery插件用于为输入框添加高级自完成功能(auto-complete)。当用户输入的时候,会在输入框的下方面动态显示一个拥有分页功能 的表格(Grid)控件。 通过Ajax请求,然后结果以JSON(或JSONP:用于跨域请求)的数据类型返回。这个插件拥有许多选项可以配置比如:设置交替行的颜色,自动选择相匹配的查询结果, 设置当输入到第几个字符号才激活表格。此外还支持键盘操作。

  涉及到的相关js和css:

  1、jquery-ui-1.10.1.custom.css

  2、jquery-ui-1.10.1.custom.min.js

  3、jquery.ui.combogrid.css

  4、jquery.ui.combogrid.js

前台页面中代码:

  

<script>
$(document).ready(function(){
$( "#project" ).combogrid({
url: '/per/getTeacherList',
debug:true,
colModel: [{'columnName':'person_id','width':'10','label':'person_id'}, {'columnName':'person_name','width':'60','label':'person_name'},{'columnName':'org_name','width':'30','label':'org_name'}],
select: function( event, ui ) {
$( "#project" ).val( ui.item.person_name );
return false;
}
});
});
</script>
<div>
  <div style="float:left"><input size="30" id="project"/></div><br/> <br/>
  <div id="switcher" style="float:right"></div>
</div>

jfinal中getTeacherList方法的代码示例:

public void getTeacherList(){
//学校ID
int bureau_id = 1;
int page = getParaToInt("page");
//每页显示行数
int limit = getParaToInt("rows");
          //查询条件
String searchTerm = getPara("searchTerm");
if(searchTerm==""){
searchTerm = "%";
} else {
searchTerm = "%" + searchTerm + "%";
}
List<Record> person_list = Person.dao.getTeacherList(bureau_id,searchTerm);
//总条数
int count = person_list.size();
//总页数
int total_pages = 0;
if(count > 0) {
if(count%limit == 0){
total_pages = count/limit;
}else{
total_pages = count/limit + 1;
}
}else{
total_pages = 1;
}
if(page > total_pages) {
page = total_pages;
}
//当前页起始行号
int start = limit * page - limit;
List<Record> list = null;
     //查询数据库
if(total_pages != 0) {
list = Person.dao.getTeacherList(bureau_id,searchTerm, start, limit);
} else {
list = Person.dao.getTeacherList(bureau_id,searchTerm);
}
Map<String,Object> map = new HashMap<String, Object>();
map.put("page", page);
map.put("total", total_pages);
map.put("records", count);
List<Object> list2 = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("person_id", list.get(i).get("PERSON_ID"));
map2.put("person_name", list.get(i).get("PERSON_NAME"));
map2.put("org_name", list.get(i).get("ORG_NAME"));
list2.add(map2);
}
map.put("rows", list2);
renderJson(JSON.toJSONString(map)); }

最终返回给前台的JSON格式为:

{"page":1,"records":2,"rows":[{"org_name":"语文组","person_id":20,"person_name":"张三"},{"org_name":"语文组","person_id":21,"person_name":"李四"}],"total":1}

这样自动完成就实现了。

  

JQuery输入自动完成的更多相关文章

  1. jquery 实现邮箱输入自动提示功能:(二)

    上篇文章写到了一个不错的jquery实现邮箱输入自动提示功能,发现还有一个不错的自动提示插件: 先展示结果如图: html代码: <center> <h1>输入邮箱试试!< ...

  2. jquery 实现邮箱输入自动提示功能:(一)

    记得去年做某个项目的时候,用到了邮箱输入自动提示功能,于是网上搜了一下,发现了这个写得不错,现在回想起来,转载一下,方便查阅. 邮箱的广泛使用得益于它的免费,因此很多网站在注册的时候都会直接使用邮箱作 ...

  3. jQuery实现用户输入自动完成功能

    jQuery实现用户输入自动完成功能 利用jQuery UI中Auto-complete插件实现输入自动完成功能,大家在使用诸如淘宝.京东等电商平台搜索商品时,往往只要输入商品的一些特殊字符,就可以显 ...

  4. 30+最佳Ajax jQuery的自动完成插件的例子

    在这篇文章中,我们将介绍35个jQuery AJAX的自动完成提示例子. jQuery 的自动完成功能,使用户快速找到并选择一定的价值.每个人都想要快速和即时搜索输入栏位,因为这个原因,许 流行的搜索 ...

  5. GBin1插件推荐之马可波罗(Marco Polo),jQuery的自动补齐插件 - Autocomplete Plugin

    让我们Google一下"jQuery autocomplete plugin"(jquery自动补齐插件).在过去的4年中,我已经Google了很多次这个组合了.然而结果并没有变化 ...

  6. 如何在myeclipse中实现jquery的自动提示功能

    在web开发过程中,myeclipse中jsp可以实现自动提示功能,但是jquery代码却无法实现自动提示,需要自己一个个手动去输入,效率过低,怎么办? 工具/原料   jquery 1.8.3.js ...

  7. jQuery AutoComplete 自动补全

    jQuery.AutoComplete是一个基于jQuery的自动补全插件.借助于jQuery优秀的跨浏览器特性,可以兼容Chrome/IE/Firefox/Opera/Safari等多种浏览器. 特 ...

  8. jquery背景自动切换特效

    查看效果网址:http://keleyi.com/a/bjad/4kwkql05.htm 本特效的jquery版本只支持1.9.0以下. 代码如下: <!DOCTYPE html PUBLIC ...

  9. 在eclipse-jee-juno中配置Aptana对jQuery代码自动提示

    主要问题 在Aptana的Web Project中打开js文件有JavaScript的自动提示,但是在JavaEE项目中却没有. 版本 eclipse-jee-juno,即Eclipse 4.2的Ja ...

随机推荐

  1. Angularjs promise-$q服务详解

    var ngApp=angular.module('ngApp',[]); /************************************************************* ...

  2. 简单记录一次ORA-00600 kcratr_nab_less_than_odr

    当前具体报错已经没有了,仅仅有对应图.參考EYGLE一篇文章中数据: 1.故障现象 数据库版本号11G,错误类似下面: ORA-00600: 内部错误代码, 參数: [kcratr_nab_less_ ...

  3. Java内存分析工具jmap

    1. jmap 1.1 概述 JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机 ...

  4. cacheManager载入问题

    net.sf.ehcache.CacheException: Another unnamed CacheManager already exists in the same VM. Please pr ...

  5. 小马哥课堂-统计学-t分布(2)

    t分布,随着自由度的增加,而逐渐接近于正态分布 #!/usr/bin/env python3 #-*- coding:utf-8 -*- ############################### ...

  6. 关于mysql内存表的一个帖子(转载)

    地址:http://bbs.csdn.net/topics/360030699 引用楼主 zgycsmb 的回复:问:1mysql的内存表性能怎么样2mysql的内存表与system v 这种共享内存 ...

  7. extjs经典form的submit()和ajax()

    extjs 的submit: // 发送请求                this.formPanel.getForm().submit({                            u ...

  8. UVA1349 Optimal Bus Route Design 拆点法+最小费用最佳匹配

    /** 题目:UVA1349 Optimal Bus Route Design 链接:https://vjudge.net/problem/UVA-1349 题意:lrj入门经典P375 给n个点(n ...

  9. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

  10. python之函数cmp

    cpm函数是内置函数.可直接调用. cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1. 但是,sorted ...