- 浏览: 22798 次
- 性别:
- 来自: 深圳
文章分类
最新评论
1. 在MyEclipse中实现示例
Ø 在MyEclipse中新建一个webProject,命名为AjaxDemo
Ø 导入jquery框架,首先从网站上下载jquery,解压文件得到jquery的核心代码(jquery-1.4.2.min.js),在webRoot目录下新建一个jscode文件夹,将jquery-1.4.2.min.js代码copy到jscode文件夹下。
Ø 首先新建一个html页面,命名为JQueryAutoComplete.html,代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>自动补全示例演示</title> <script type="text/javascript" src="jscode/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="jscode/jqueryauto.js"></script> </head> <body> <center> <h2> 仿Google自动补全示例 </h2> <input type="text" id="word" /> <input type="button" value="搜索" /> <br /> </center> <div id="auto"></div> </body> </html>
|
以上代码需要注意:首先要在html页面中引用jquery的代码:
<script type="text/javascript" src="jscode/jquery-1.4.2.min.js"></script> |
其次对于引入js代码的顺序要注意,先引入jquery代码,再引入自动补全的js实现代码
<script type="text/javascript" src="jscode/jqueryauto.js"></script> |
并在web.xml文件配置:
<servlet> <servlet-name>AutoComplete</servlet-name> <servlet-class>com.tlj.test.AutoComplete</servlet-class> </servlet>
<servlet-mapping> <servlet-name>AutoComplete</servlet-name> <url-pattern>/AutoComplete</url-pattern> </servlet-mapping> |
<!--EndFragment--><!--EndFragment-->
Ø 在webRoot目录下新建一个jsp页面,命名为wordxml.jsp,其代码如下所示:
<%@ page contentType="text/xml;charset=utf-8" language="java" %> <% String word=(String)request.getAttribute("word"); %> <words> <%if("absolute".startsWith(word)){%> <word>absolute</word> <%}%> <%if("anyone".startsWith(word)){%> <word>anyone</word> <%}%> <%if("anything".startsWith(word)){%> <word>anything</word> <%}%> <%if("apple".startsWith(word)){%> <word>apple</word> <%}%> <%if("abandon".startsWith(word)){%> <word>abandon</word> <%}%> <%if("breach".startsWith(word)){%> <word>breach</word> <%}%> <%if("break".startsWith(word)){%> <word>break</word> <%}%> <%if("boolean".startsWith(word)){%> <word>boolean</word> <%}%> </words>
|
在这段代码中要注意处:第一句中contentType="text/xml;charset=utf-8",其类型是xml类型。
Ø 自动补全的核心代码是其的js代码,在jscode文件夹下建立jqueryauto.js,代码如下所示:
var hightlightindex = -1;//高亮表示 var timeoutId;//延迟加载 $(document).ready(function () { //自动补全框开始应该隐藏起来 var wordInput = $("#word"); var wordInputOffset = wordInput.offset(); $("#auto").hide().css("border", "1px black solid") .css("position", "absolute") .css("top", wordInputOffset.top + wordInput.height() + 5 + "px") .css("left", wordInputOffset.left + "px").width(wordInput.width()); //给文本框添加键盘按下的事件 wordInput.keyup(function (event) { //处理文本框中的键盘事件 var myEvent = event || window.event; var keyCode = myEvent.keyCode; //如果输入的是字母,应该将文本框中的最新的信息发送给服务器 if (keyCode >= 65 && keyCode <= 90 || keyCode == 8 || keyCode == 46) { //1.获取文本框中的内容 var wordText = $("#word").val(); if (wordText != "") { clearTimeout(timeoutId); timeoutId = setTimeout(function () { $.post("AutoComplete", {word:wordText}, function (data) { var jqueryObj = $(data); //找到所有的word节点 var wordNodes = jqueryObj.find("word"); var autoNode = $("#auto"); //需要清空原来的内容 autoNode.html(""); wordNodes.each(function (i) { //获取单词内容 var wordNode = $(this); //新建div节点,将单词内容加入到新建的节点中 //将新建的节点加入到弹出框的节点中 var newDivNode = $("<div>").attr("id", i); newDivNode.html(wordNode.text()).appendTo(autoNode); newDivNode.mouseover(function () { if (hightlightindex != -1) { $("#auto").children("div").eq(hightlightindex) .css("background-color", "white"); } hightlightindex = $(this).attr("id"); $(this).css("background-color", "red"); }); newDivNode.mouseout(function () { $("this")..css("background-color", "white"); }); newDivNode.click(function () { var comText = $(this).text(); $("#auto").hide(); hightlightindex = -1; $("#word").val(comText); }); }); //如果服务器端有数据,则显示弹出框 if (wordNodes.length > 0) { autoNode.show(); } else { autoNode.hide(); hightlightindex = -1; } }, "xml"); }, 500); //2.将文本框中的内容发送给服务器 } else { autoNode.hide(); hightlightindex = -1; } } else { if (keyCode == 38 || keyCode == 40) { //输入是上下键 if (keyCode == 38) { //向上键 var autoNodes = $("#auto").children("div"); if (hightlightindex != -1) { autoNodes.eq(hightlightindex). css("background-color", "white"); hightlightindex--; } else { hightlightindex = autoNodes.length - 1; } if (hightlightindex == -1) { hightlightindex = autoNodes.length - 1; } autoNodes.eq(hightlightindex).css("background-color", "red"); } if (keyCode == 40) { //向下键 var autoNodes = $("#auto").children("div"); if (hightlightindex != -1) { autoNodes.eq(hightlightindex) .css("background-color", "white"); } hightlightindex++; if (hightlightindex == autoNodes.length) { hightlightindex = 0; } autoNodes.eq(hightlightindex).css("background-color", "red"); } } else { if (keyCode == 13) { //输入的是回车 if (hightlightindex != -1) { var comText = $("#auto").hide().children("div") .eq(hightlightindex).text(); hightlightindex = -1; $("#word").val(comText); } else { $("#auto").hide(); $("#word").get(0).blur(); } } } } }); }); |
发表评论
-
网页技巧收集
2012-01-14 09:44 17781.文本框焦点问题onBlur:当失去输入焦点后产生该事件 ... -
JS获取系统时间进行格式化,并与其他时间进行判断
2011-11-11 14:32 28131、通过JS获取到系统时间 function getTime ... -
JavaScript返回上一页
2011-08-22 15:04 6441. Javascript 返回上一页 history.go( ... -
中国省市县三级下拉框联动使用示例
2011-08-11 12:55 2417HTML文件: ======================= ... -
JS,Jquery获取select,dropdownlist,checkbox 下拉列表框的值
2011-08-11 12:46 1189jQuery获取Select选择的Text和Value: 语法 ... -
在表格中复选框选择、选中后变色
2011-08-11 12:38 1677<style type="text/css&q ... -
JS获取传递来的参数
2011-08-10 18:09 771最近也遇到了这个问题,可是很久都没解决啊,呵呵,正好在 ...
相关推荐
仿Google百度 自动补全示例,实现效果完全正确
标题中的“仿google自动补全检索建议”是指创建一个类似谷歌搜索框的自动补全功能,它能够在用户输入关键词时,提供与输入内容相关的搜索建议。这个功能在提高用户体验、加快搜索速度方面起到了重要作用。 首先,...
标题“改进版 jquery 仿百度谷歌自动补全输入(支持中文)”涉及到的是一个基于jQuery的前端开发技术,旨在实现类似百度和谷歌搜索框的自动补全功能,而且这一版本特别优化了对中文字符的支持。在网页交互设计中,...
在提供的文件“31_实现仿GoogleSuggest自动补全的功能.avi”中,可能包含了实现这一功能的具体步骤和示例代码。通过观看这个视频教程,你可以学习到如何从头构建这样的功能,包括前端交互逻辑、后端接口设计及其实现...
在本文中,我们将深入探讨AJAX技术在JavaScript库jQuery中的应用,特别是通过一个实战案例——仿谷歌搜索建议(Google Suggest)的自动补全功能。这个功能广泛应用于各种搜索框,能够极大地提升用户体验,使用户在...
**jQuery实现Google自动补全效果** 在Web开发中,用户输入的实时提示功能,也称为自动补全(Autocomplete)或智能搜索,极大地提升了用户体验。本篇将介绍如何使用jQuery库来实现类似Google搜索那样的自动补全效果...
本示例聚焦于实现类似Google和百度搜索框那样的自动补全功能,采用jQuery库来辅助开发。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互。在实现自动补全功能时,我们可以利用...
在提供的压缩包文件"GoogleSuggest"中,可能包含了一个关于谷歌搜索建议的示例,它展示了如何使用jQuery UI Autocomplete来模拟谷歌搜索的自动补全效果。通过分析和学习这个示例,你可以更深入地理解如何与服务器...
**jQuery 实例详解:防Google自动补全** jQuery 是一个高效、简洁且强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和AJAX交互。在"传智播客Jquery实例(防google自动补全)"的课程中,主要探讨的是...
"模拟googlesugest自动补全功能 - ajax - 雨踪云迹.htm" 这个文件名暗示我们将会学习一个使用Ajax技术来实现Google自动补全功能的示例。Ajax(异步JavaScript和XML)允许网页在不刷新整个页面的情况下与服务器交换...
这个"类似百度、谷歌的自动补全"Demo展示了一个如何实现这种功能的方法,主要利用了JavaScript库jQuery。在本文中,我们将深入探讨自动补全的工作原理、jQuery在其中的角色,以及如何构建类似的实现。 自动补全的...
jQuery自动补全是一种常见的前端开发技术,用于提升用户体验,特别是在搜索框或输入字段中,它能够根据用户输入的内容实时提供预测建议。这个功能在许多网站和应用中都有所应用,如百度搜索、谷歌搜索等。它能够帮助...
【标题】"GoogleSuggest ajax自动补全"是基于AJAX和jQuery技术实现的一个功能,它主要用于提升用户体验,提供在用户输入时实时显示搜索建议的功能。这个功能在很多搜索引擎和网站中都有应用,比如Google搜索,它能...
在本教程中,我们将深入探讨如何使用AJAX和jQuery实现谷歌搜索式的自动补全功能。自动补全是一种增强用户体验的常见技术,它允许用户在输入查询时获得即时建议,极大地提高了搜索效率。以下是对实现这一功能所需的...
本示例将深入解析如何使用jQuery Ajax实现一个仿Google Suggest的自动补全功能,特别针对中文输入进行了优化,并且结合了Java后端技术如jsp和Servlet。 首先,让我们理解这个功能的核心概念。Google Suggest的自动...
在IT行业中,自动补全功能是一项非常常见的用户体验优化技术,尤其在搜索引擎中广泛使用,比如谷歌搜索。这个功能能够帮助用户快速找到他们可能想要输入的查询,提高输入效率,减少错误。下面我们将深入探讨实现此类...
搜索引擎文本框自动补全是一种常见的用户体验优化技术,广泛应用于各种在线搜索平台,如谷歌、百度等。这种功能在用户输入查询关键词时,会预测并显示可能的搜索建议,帮助用户快速找到想要的信息,提高搜索效率。 ...
在Android应用开发中,"自动补全"是一项重要的功能,它极大地提高了用户的输入效率和体验。这个主题主要涉及Android Studio中的Autocomplete特性,这是一套智能代码补全系统,能够根据用户输入的部分代码预测并提供...
在"基于Ajax的自动补全"这一主题中,我们主要探讨的是如何利用Ajax技术实现类似Google搜索框的自动补全功能。Google搜索的自动补全功能能够在用户输入关键字时,根据历史搜索记录、热门搜索等信息,实时提供可能的...
下面是一个基本的示例,展示了如何使用JavaScript实现百度搜索的自动补全: ```html <!DOCTYPE html> 百度搜索自动补全 <script src="https://api.map.baidu.com/autocomplete/v2/inject.js"></script> 请...