引入必要的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行,插入如下代码:
-
.
bind
(
"
input
"
,
function
()
{
-
// @hack by liqt:support for inputing chinese characters in firefox
-
onChange
(
0
,
true
)
;
-
})
;
==========================================
再转一些配置信息感谢paskaa
对autocomplete的一些参数进行说明
Options:
Name
Type
minChars
Number
|
Default:
1
|
执行autocomplete的最小值
The minimum number of characters a user has to type before the autocompleter activates.
|
delay
Number
|
Default:
400 for remote, 10 for local
|
显示自动自动完成选择框的延迟时间
The delay in milliseconds the autocompleter waits after a keystroke to activate itself.
|
cacheLength
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.
|
matchSubset
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.
|
matchCase
Boolean
|
Default:
false
|
是否敏感的比较。
Whether or not the comparison is case sensitive. Important only if you use caching.
|
matchContains
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.
|
mustMatch
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.
|
selectFirst
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.
|
extraParams
Object
|
今天添加个自动提示控件,一番周折。具体步骤:
分享到:
相关推荐
**jQuery 自动完成控件详解** 在Web开发中,用户界面的交互性和便捷性是提升用户体验的关键因素之一。"jQuery 自动完成控件"就是这样一个功能,它可以在用户输入时提供预测建议,大大提高了输入效率,尤其适用于...
总结,jQuery 自动补全搜索框控件是Web应用中提升用户体验的重要工具,其灵活性和可定制性使其适用于各种项目。理解其工作原理并掌握基本配置和高级特性,可以帮助开发者创建出高效、友好的搜索界面。在实际开发中,...
`jQuery autocomplete` 是jQuery UI库中的一个组件,它为输入框提供了自动完成的功能,能够根据用户输入的文本动态地从服务器获取并显示建议的匹配项。这个功能对于提高用户体验,特别是处理大量数据时,如搜索或者...
3. **初始化 Autocomplete**:使用 jQuery 的 `.autocomplete()` 方法,传入配置对象,设置数据源、提示样式等参数。 4. **数据源**:数据源可以是静态数组、AJAX 请求或函数,根据实际需求灵活配置。 5. **事件处理...
5. **Autocomplete**:此控件提供自动完成功能,常用于搜索输入框,能根据用户输入的字符实时匹配并显示建议列表。 6. **Accordion 和 Tabs**:Accordion 用于折叠/展开内容区域,而 Tabs 则将多个页面内容组织成...
jquery autocomplete.js 是一款优秀的开源JS,支持自动完成,不过如果是中文失效。原因是由于中文编码不一致引起的,修改源文件中AJAX请求中的编码,加上escape编码后,在后台用Server.URLDecode解码后,则中文也...
在ASP.NET AJAX中,AutoComplete控件是一个非常实用的组件,用于实现自动填充功能,常见于搜索框或者输入框,用户输入文字时,系统会根据已有的数据提供匹配的建议。 AutoComplete控件是ASP.NET AJAX Control ...
总的来说,这个AutoComplete控件结合了jQuery的便利性、Ajax的实时交互性和JSON的高效数据交换,提供了一个易于使用的Web界面元素,能够帮助开发者快速实现动态数据输入的自动补全功能。为了使用这个控件,你需要...
在这个实例中,我们将探讨如何在ASP.NET中使用jQuery插件实现AutoComplete功能,这是一种常见的输入提示技术,可以提升用户输入效率。 AutoComplete通常用于TextBox控件,当用户在输入框中键入文字时,系统会根据已...
1、普通text input,通过$("#Text1").KingAutoSelect(settings, DropDownColumns, "/CommonPage/getUserList.ashx")即可控件化; 2、支持键盘上、下键选择,回车即可选中相应数据,其中“值“存放于控件的...
在网页开发中,jQuery Autocomplete 是一款非常流行的插件,用于实现自动补全功能,它大大简化了在输入框中动态提供建议数据的过程。标题提到的"带分页的jquery.autocomplete"则是在这个基本功能的基础上增加了分页...
在ASP.NET开发中,为了提升用户体验,经常需要使用到自动完成(AutoComplete)功能,它可以在用户输入文本时提供预填充建议。这个标题提到的是利用jQuery插件在ASP.NET 2.0环境中实现一个自动完成控件,以重写...
【纯JQUERY自查询(完成)控件】是一款轻量级的前端插件,主要用于实现自动补全功能,它基于JavaScript库JQuery构建,适用于网页中的输入框元素,以提高用户体验,快速找到并选择所需内容。这个控件设计精巧,占用...
本项目“jQuery自动填充表单功能代码”展示了如何使用jQuery UI的Autocomplete实现表单自动填充功能,结合Ajax和本地文本文件来动态提供搜索建议。通过理解Autocomplete的工作原理和配置选项,开发者可以轻松地为...
首先,`jquery.autocomplete`是jQuery UI库中的一个组件,它提供了一个自动补全功能,用于在用户输入时动态加载匹配的数据。这个功能在各种输入字段,如搜索框、表单字段等中非常常见,可以极大地提高用户输入的效率...
Asp.net与jQuery结合实现的自动补全功能(autocomplete)是一种常见的前端交互设计,它能够极大地提高用户在输入框中的输入效率。此功能通常应用于搜索框、表单填充等场景,为用户提供动态提示,根据他们输入的部分...
【标题】"仿百度自动搜索控件,自动搜索"是一个基于jQuery和jQuery.autocomplete插件的Web应用程序,它旨在实现类似百度搜索引擎的自动提示功能。这个控件可以在用户输入关键词时,实时显示与输入匹配的搜索建议,...
**jQuery控件集合详解** jQuery,作为一款轻量级、高性能的JavaScript库,极大地简化了JavaScript的DOM操作,使得网页动态交互变得更加简单。本压缩包中的"Jquery控件集合"是一个包含各种实用jQuery插件和UI组件的...
在JQueryUI中,你可以使用Autocomplete组件为输入框提供自动完成功能,这在搜索框或输入建议场景中非常有用。另外,Slider组件则可以创建滑动条,允许用户通过直观的方式选择数值或进行排序。 接下来,我们讨论Tab...
jQuery UI AutoComplete 是一个强大的前端开发组件,它允许用户在输入文本时自动显示匹配的建议列表,极大地提升了用户体验。在jQuery UI库中,AutoComplete功能是建立在jQuery基础之上的,因此在使用前,需要确保...