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. 跨Server查询

    GO RECONFIGURE GO GO RECONFIGURE GO SELECT MAX(OldestCall) FROM ( SELECT FeildAA As FeildAAFROM OPEN ...

  2. windows server 2003中端口默认不能使用问题

    问题:在windows server 2003中IIS6.0新建站点,给了一个新端口(非80),然后配置好后不能访问 解决方案:系统内置防火墙需要添加对应端口,如下图:     即解决.

  3. RS232接口

    想用下板子,却发现板子和USB转串口线都是母口,无耐只能自己用线将对应的管脚连起来. 结果测试的时候发现,板子能发不能收.将板子串口的23连起来,回环正常.电脑USB转串口线上的23连起来也回环正常. ...

  4. 正常断开连接情况下,判断非阻塞模式socket连接是否断开

    摘自:http://blog.chinaunix.net/uid-15014334-id-3429627.html 在UNIX/LINUX下, 1,对于主动关闭的SOCKET, recv返回-1,而且 ...

  5. linux 查找文件并移动

     find . -name '10-*.dat' -exec mv {} ../ \; 这里:  => -exec mv {} /mnt/mp3 \; - 运行mv命令.  => {} ...

  6. maven+nexus setting.xml配置(收藏)

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...

  7. 怎样用Google APIs和Google的应用系统进行集成(5)----怎样把Google Tasks的JSON Schema转换成XML的Schema(XSD)?

    前面说了一些Google API的介绍,可是在实际的开发其中,我们可能须要把Google RESTful API返回的JSON数据转换成XML数据输入到第三方系统,这在企业应用集成里面很的常见. 那么 ...

  8. TypeScript Visitor设计模式

    以下翻译脑袋的VBF项目,试试看TypeScript能否重写. class RegExpr {     Accept<T>(convert: Converter<T>) {   ...

  9. UVALive 7712 Confusing Manuscript 字典树 查询与s的编辑距离为1的字符串数量

    /** 题目:UVALive 7712 Confusing Manuscript 链接:https://vjudge.net/problem/UVALive-7712 题意:给定n个不同的字符串,f( ...

  10. python read文件内容的iter方式

    遍历file的方式 iter(lambda: f.read(4096), "")等价与while True: data = f.read(4096) if not data: br ...