`
仅此而已
  • 浏览: 61430 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

jquery自动提示控件autocomplete使用总结

 
阅读更多
引入必要的js文件一共三个
jquery.js
<script type='text/javascript' src='${jsdir}/autocomplete/jquery.autocomplete.js'></script>
<link href="${jsdir}/autocomplete/jquery.autocomplete.css" rel="stylesheet" type="text/css" />

$(function(){
				var temp;
				$.ajax({
				   type: "POST",
				   url: "suggest.action",
				   async: false,//锁定浏览器为 temp赋值


				   success: function(data){
				   			temp=eval(data);//将字符串转换为数组对象赋值给temp


				   }
				}); 
				$("#startperson").autocomplete(temp, {
					matchContains: true,
					minChars: 0
				});
			})
====================================
struts2中action代码
public class SuggestAction extends BaseAction {

	private static final long serialVersionUID = 1L;
	private static final Logger LOG = Logger.getLogger(SuggestAction.class);
	private String suggestMessage;//返回的提示信息
	private List<GClientinfo> clientinfoList;
	
	public String execute() throws Exception {
		clientinfoList = manager.query(new StringBuffer("select new GClientinfo(keyid,clientname) from GClientinfo ").toString());//查询获得list数据
		StringBuffer suggestestMessageBuffer = new StringBuffer();
		if (clientinfoList==null||clientinfoList.isEmpty()) {
			return StrutsResultType.NONE;
		}
		for (GClientinfo clientinfo : clientinfoList) {
			if (suggestestMessageBuffer.length()==0) {
				suggestestMessageBuffer.append("[\"")
														  .append(clientinfo.getClientname())
														  .append('\"');
				continue;
			}
			suggestestMessageBuffer.append(",\"")
													  .append(clientinfo.getClientname())
													  .append('\"');;
		}
		suggestestMessageBuffer.append("]");
		HttpServletResponse response = ServletActionContext.getResponse(); 
		response.setCharacterEncoding("UTF-8");
		PrintWriter out= response.getWriter();
		out.print(suggestestMessageBuffer.toString());//生成的格式为"["sdfsdf","wer","werwer","werwe","werw"]"out输出给页面


	    return StrutsResultType.NONE;
	}

//省略get、set方法
}

================================== 
困扰我半天的问题居然是浏览器不兼容一下内容转自  lichdb 


jQuery.Autocomplete 是jquery的流行插件,能够很好的实现输入框的自动完成(autocomplete)、建议提示(input suggest)功能,支持ajax数据加载。

但唯一遗憾的是,在对中文输入法打开时,firefox3.0中是对中文拼音的自动匹配,而对输入后的中文无法及时触发匹配;而在我的IE6.0下,则无此问题。

原因分析:
Autocomplete插件对用户输入字符的触发自动匹配是通过”keydown”事件进行的(可分析 jquery.autocomplete.js第92行),在IE6中,当输入法打开时,输入的字符是不会触发”keydown”的,只有中文输入完毕才 触发之,所以中文输入和latin文没有区别的;但在firefox3.0下,无论输入法打开否,按键都会触发”keydown”事件,所以造成中文输入 完毕,自动匹配的是刚才打出的部分中文拼音字母。

解决方法:
网上查到的最多做法是修改jquery.autocomplete.js第92行,将”keydown”替换为”keyup”, 但这个不是根本办法,虽然这样改后可在firefox中及时对输入的中文进行自动匹配,但将原插件中回车、tab等重要的事件机制破坏了,比如这样改后, 如果你的input是在一个form里的话,回车从原来的将选定项输入到input中变为了直接提交form表单了,这并不是我们想要的。

我的方法原理是,补充一个原插件触发查询的事件,就是当input输入栏发生字符变化时,重新进行查询(调用其内部的onChange函数),这里 主要针对firefox而言,因为我们的系统访问最多的是IE和firefox。而恰好firefox有一个input变化的事件就是oninput ,那么我们只要在原jquery.autocomplete.js第199行,插入如下代码:

  1. . bind ( " input " , function () {
  2.     // @hack by liqt:support for inputing  chinese characters  in firefox
  3.     onChange ( 0 , true ) ;
  4. }) ;
==========================================
再转一些配置信息感谢paskaa


对autocomplete的一些参数进行说明

Options:

Name Type minChars delay cacheLength matchSubset matchCase matchContains mustMatch selectFirst extraParams
Number Default: 1

执行autocomplete的最小值

The minimum number of characters a user has to type before the autocompleter activates.

Number Default: 400 for remote, 10 for local

显示自动自动完成选择框的延迟时间

The delay in milliseconds the autocompleter waits after a keystroke to activate itself.

Number Default: 10

缓存长度

The number of backend query results to store in cache. If set to 1 (the current result), no caching will happen. Must be >= 1.

Boolean Default: true

匹配子集

Whether or not the autocompleter can use a cache for more specific queries. This means that all matches of "foot" are a subset of all matches for "foo". Usually this is true, and using this options decreases server load and increases performance. Only useful with cacheLength settings bigger than one, like 10.

Boolean Default: false

是否敏感的比较。

Whether or not the comparison is case sensitive. Important only if you use caching.

Boolean Default: false

匹配内容。

Whether or not the comparison looks inside (i.e. does "ba" match "foo bar") the search results. Important only if you use caching. Don't mix with autofill.

Boolean Default: false

必须完全匹配。

If set to true, the autocompleter will only allow results that are presented by the backend. Note that illegal values result in an empty input box.

Boolean Default: true

如果设置为true则第一个值会被自动选中。

If this is set to true, the first autocomplete value will be automatically selected on tab/return, even if it has not been handpicked by keyboard or mouse action. If there is a handpicked (highlighted) result, that result will take precedence.

Object


 

今天添加个自动提示控件,一番周折。具体步骤:

0
0
分享到:
评论

相关推荐

    jquery自动完成控件

    **jQuery 自动完成控件详解** 在Web开发中,用户界面的交互性和便捷性是提升用户体验的关键因素之一。"jQuery 自动完成控件"就是这样一个功能,它可以在用户输入时提供预测建议,大大提高了输入效率,尤其适用于...

    jquery 自动补全搜索框控件

    总结,jQuery 自动补全搜索框控件是Web应用中提升用户体验的重要工具,其灵活性和可定制性使其适用于各种项目。理解其工作原理并掌握基本配置和高级特性,可以帮助开发者创建出高效、友好的搜索界面。在实际开发中,...

    JQuery autocomplete Ajax分页控件

    `jQuery autocomplete` 是jQuery UI库中的一个组件,它为输入框提供了自动完成的功能,能够根据用户输入的文本动态地从服务器获取并显示建议的匹配项。这个功能对于提高用户体验,特别是处理大量数据时,如搜索或者...

    jquery autocomplete 控件

    3. **初始化 Autocomplete**:使用 jQuery 的 `.autocomplete()` 方法,传入配置对象,设置数据源、提示样式等参数。 4. **数据源**:数据源可以是静态数组、AJAX 请求或函数,根据实际需求灵活配置。 5. **事件处理...

    jquery-ui控件

    5. **Autocomplete**:此控件提供自动完成功能,常用于搜索输入框,能根据用户输入的字符实时匹配并显示建议列表。 6. **Accordion 和 Tabs**:Accordion 用于折叠/展开内容区域,而 Tabs 则将多个页面内容组织成...

    jquery autocomplete 完成控件中文修正

    jquery autocomplete.js 是一款优秀的开源JS,支持自动完成,不过如果是中文失效。原因是由于中文编码不一致引起的,修改源文件中AJAX请求中的编码,加上escape编码后,在后台用Server.URLDecode解码后,则中文也...

    ASP.NET AJAX控件之AutoComplete

    在ASP.NET AJAX中,AutoComplete控件是一个非常实用的组件,用于实现自动填充功能,常见于搜索框或者输入框,用户输入文字时,系统会根据已有的数据提供匹配的建议。 AutoComplete控件是ASP.NET AJAX Control ...

    封装好的Jquery 的ajax 的json的AutoComplete控件(用户控件)

    总的来说,这个AutoComplete控件结合了jQuery的便利性、Ajax的实时交互性和JSON的高效数据交换,提供了一个易于使用的Web界面元素,能够帮助开发者快速实现动态数据输入的自动补全功能。为了使用这个控件,你需要...

    ASP.NET用JQuery插件实现的AutoComplete

    在这个实例中,我们将探讨如何在ASP.NET中使用jQuery插件实现AutoComplete功能,这是一种常见的输入提示技术,可以提升用户输入效率。 AutoComplete通常用于TextBox控件,当用户在输入框中键入文字时,系统会根据已...

    jquery autocomplete控件,非常好用,提供源代码,有详细示例

    1、普通text input,通过$("#Text1").KingAutoSelect(settings, DropDownColumns, "/CommonPage/getUserList.ashx")即可控件化; 2、支持键盘上、下键选择,回车即可选中相应数据,其中“值“存放于控件的...

    带分页的jquery.autocomplete

    在网页开发中,jQuery Autocomplete 是一款非常流行的插件,用于实现自动补全功能,它大大简化了在输入框中动态提供建议数据的过程。标题提到的"带分页的jquery.autocomplete"则是在这个基本功能的基础上增加了分页...

    jquery插件实现的asp.net自动完成控件

    在ASP.NET开发中,为了提升用户体验,经常需要使用到自动完成(AutoComplete)功能,它可以在用户输入文本时提供预填充建议。这个标题提到的是利用jQuery插件在ASP.NET 2.0环境中实现一个自动完成控件,以重写...

    纯JQUERY自查询(完成)控件

    【纯JQUERY自查询(完成)控件】是一款轻量级的前端插件,主要用于实现自动补全功能,它基于JavaScript库JQuery构建,适用于网页中的输入框元素,以提高用户体验,快速找到并选择所需内容。这个控件设计精巧,占用...

    jQuery自动填充表单功能代码.zip

    本项目“jQuery自动填充表单功能代码”展示了如何使用jQuery UI的Autocomplete实现表单自动填充功能,结合Ajax和本地文本文件来动态提供搜索建议。通过理解Autocomplete的工作原理和配置选项,开发者可以轻松地为...

    基于jquery.autocomplete的分页实现

    首先,`jquery.autocomplete`是jQuery UI库中的一个组件,它提供了一个自动补全功能,用于在用户输入时动态加载匹配的数据。这个功能在各种输入字段,如搜索框、表单字段等中非常常见,可以极大地提高用户输入的效率...

    Asp.net+JQuery自动补全

    Asp.net与jQuery结合实现的自动补全功能(autocomplete)是一种常见的前端交互设计,它能够极大地提高用户在输入框中的输入效率。此功能通常应用于搜索框、表单填充等场景,为用户提供动态提示,根据他们输入的部分...

    仿百度自动搜索控件,自动搜索

    【标题】"仿百度自动搜索控件,自动搜索"是一个基于jQuery和jQuery.autocomplete插件的Web应用程序,它旨在实现类似百度搜索引擎的自动提示功能。这个控件可以在用户输入关键词时,实时显示与输入匹配的搜索建议,...

    Jquery控件集合

    **jQuery控件集合详解** jQuery,作为一款轻量级、高性能的JavaScript库,极大地简化了JavaScript的DOM操作,使得网页动态交互变得更加简单。本压缩包中的"Jquery控件集合"是一个包含各种实用jQuery插件和UI组件的...

    JQueryUI,EasyUI一些控件的使用

    在JQueryUI中,你可以使用Autocomplete组件为输入框提供自动完成功能,这在搜索框或输入建议场景中非常有用。另外,Slider组件则可以创建滑动条,允许用户通过直观的方式选择数值或进行排序。 接下来,我们讨论Tab...

    jQuery UI AutoComplete 使用说明

    jQuery UI AutoComplete 是一个强大的前端开发组件,它允许用户在输入文本时自动显示匹配的建议列表,极大地提升了用户体验。在jQuery UI库中,AutoComplete功能是建立在jQuery基础之上的,因此在使用前,需要确保...

Global site tag (gtag.js) - Google Analytics