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. JUC组件扩展(二)-JAVA并行框架Fork/Join(二):同步和异步

    在Fork/Join框架中,提交任务的时候,有同步和异步两种方式. invokeAll()的方法是同步的,也就是任务提交后,这个方法不会返回直到所有的任务都处理完了. fork方法是异步的.也就是你提 ...

  2. SecureCRT终端上使用spark-shell时按退格键无反应的解决方法

    问题:用SecureCRT远程连接至Spark集群,启动spark-shell却发现输错命令后却无法用退格键删除. 解决方法: 第一步: 在SecureCRT的菜单栏选择“OPtions(选项)”按钮 ...

  3. Spring Aop基础总结

    什么是AOP: Aop技术是Spring核心特性之中的一个,定义一个切面.切面上包括一些附加的业务逻辑代码.在程序运行的过程中找到一个切点,把切面放置在此处,程序运行到此处时候会运行切面上的代码.这就 ...

  4. make之eval函数

    函数原型: $(eval text) 它的意思是 text 的内容将作为makefile的一部分而被make解析和执行. 需要注意的是该函数在执行时会对它的参数进行两次展开,第一次展开是由函数本身完成 ...

  5. rdb 和 aof

    Redis 中 默认会开启rdb 持久化方式,aof 默认不开启,Redis 提供不同级别的持久化方式rdb: 在指定的时间间隔对你的数据进行快照存储aof:记录每次Redis服务写操作,当Redis ...

  6. ubuntu MySQL数据库输入中文乱码 解决方案

    一.登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:+--------------------------+----------------- ...

  7. NumberUtils

    package cn.edu.hbcf.common.utils; import java.math.BigDecimal; import java.text.NumberFormat; import ...

  8. 兴奋、强类型版的PHP语言 - Hack

    Hack 是 Facebook 推出的一款新的编程语言. Hack 是由Facebook开发的,同时结合了动态类型语言(如C语言)和静态类型语言(如PHP语言)两种特点的一种编程语言.通常在使用静态类 ...

  9. 清空oracle数据库

    在开发过程中,可能经常需要重新初始化数据库,在初始化之前,我们肯定希望不再有以前的老表.存储过程等用户对象,用下面的教本就可以做到这一点: BEGIN FOR rec IN (SELECT objec ...

  10. 善用php-fpm的慢执行日志slow log,分析php性能问题

    众所周知,mysql有slow query log,根据慢查询日志,我们可以知道那些sql语句有性能问题.作为mysql的好搭档,php也有这样的功能.如果你使用php-fpm来管理php的话,你可以 ...