<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>页面的自动补全</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jquery.js"> </script>
<script type="text/javascript" src="js/jquertAutoFill.js"></script>
</head>
<body>
请输入你想查找的内容:<input type="text" id="word"/>
<input type="button" value="提交"/><br />
<div id="auto"></div>
</body>
</html>
//jquery自动补全
//定义全局变量
var highlightindex = -1; //表示高亮的节点
var timeoutId; //表示延時向服务器发送请的时间
/*Ajax 自动补全*/
//注册页面装在时执行的方法
$(document).ready(function () {
//得到文本框对象
var wordInput = $("#word");
//得到文本框距离屏幕左边距和上边的距离
var wordInputOffset = wordInput.offset();
//自动补全框最开始隐藏起来
//添加样式必须现价 css("position","absolute")属性
$("#auto").hide().css("border", "1px black solid").css("position", "absolute").css("top", wordInputOffset.top + wordInput.height() + 6 + "px").css("left", wordInputOffset.left + "px").width(wordInput.width() + 2);
//给文本框添加键盘按下并弹起的事件
$("#word").keyup(function (event) {
//处理文本框中的键盘事件
//得到弹出框对象
var autoNode = $("#auto");
//得到当前按键的code值
var myEvent = event || window.evnet;
var keyCode = myEvent.keyCode;
//如果输入的是字母,应该将文本框最新的信息发送给服务器
//如果输入的是退格键或删除键,也应该将文本框的信息发送给服务器
if (keyCode >= 65 || keyCode <= 90 || keyCode == 8 || keyCode == 46) {
//1、首先获取文本框的内容
var wordText = $("#word").val();
//文本内容不为空才将文本框内容发给服务器
if (wordText != "") {
//2、将文本框的内容发给服务器
//对上次未执行的延时做清除操作
clearTimeout(timeoutId);
//对服务器端进行交互延迟500ms,避免快速打字造成的频繁请求
timeoutId = setTimeout(function(){
$.post("AutomaticFillServlet", {word:wordText}, function (data) {
//将dom对象data转换成JQuery的对象
var jqueryobj = $(data);
//找到所有word节点
var wordNodes = jqueryobj.find("word");
//遍历所有的word节点,取出单词内容,然后将单词内容添加到弹出框中
//清空div里原来的内容
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(highlightindex != -1){
$("#auto").children("div").eq(highlightindex).css("background-color","white");
}
//记录新的高亮节点
highlightindex = $(this).attr("id");
$(this).css("background-color","red");
});
//鼠标移出,取消高亮
newDivNode.mouseout(function(){
//取消节点的高亮
$(this).css("background-color","white");
});
//鼠标补全
newDivNode.click(function(){
//文本框的内容变成高亮显示的内容
$("#word").val($(this).text());
//隐藏弹出窗体
$("#auto").hide();
});
});
//如果服务服务器端有数据,则显示弹出框
if (wordNodes.length > 0) {
autoNode.show();
} else {
autoNode.hide();
//弹出框隐藏时没有高亮显示的节点
highlightindex = -1;
}
}, "xml");
},500);
} else {
autoNode.hide();
//弹出框隐藏时没有高亮显示的节点
highlightindex = -1;
}
} else if(keyCode == 38) { //向上键
//得到弹出框的所有子节点
var autoNodes = $("#auto").children("div");
if(highlightindex != -1){
//如果原来存在高亮显示节点,则将背景色改为白色
autoNodes.eq(highlightindex).css("background-color","white");
//将highlightindex等于零的情况单独拿出来处理
if(highlightindex == 0){
highlightindex = autoNodes.length - 1;
}else{
highlightindex--;
}
}else{
highlightindex = autoNodes.length - 1;
}
//让现在高亮的内容变成红色
autoNodes.eq(highlightindex).css("background-color","red");
}else if(keyCode == 40){ //向下键
//得到弹出框的所有子节点
var autoNodes = $("#auto").children("div");
if(highlightindex != -1){
//如果原来存在高亮显示节点,则将背景色改为白色
autoNodes.eq(highlightindex).css("background-color","white");
}
highlightindex++;
if(highlightindex == autoNodes.length){
highlightindex = 0;
}
//让现在高亮的内容变成红色
autoNodes.eq(highlightindex).css("background-color","red");
}else if (keyCode == 13) {
//如果输入的是回车
if(highlightindex != -1){
//取出高亮显示下拉框的内容
var comText = $("#auto").hide().children("div").eq(highlightindex).text();
//文本框的内容变成高亮显示的内容
$("#word").val(comText);
highlightindex = -1;
}else{
var obj = $("#word");
var count = obj.val();
obj.val("");
alert("文本框中的[" + count + "]被提交了");
//让文本框失去焦点
obj.get(0).blur();
}
}
});
//给按钮添加事件,表示文本框中的数据被提交
$("input[type='button']").click(function () {
alert("\u6587\u672c\u6846\u4e2d\u7684[" + $("#word").val + "]\u88ab\u63d0\u4ea4\u4e86");
});
});
package serverlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 自动补全
* 向客服端返XML数据的servlet
* @author Administrator
*
*/
@SuppressWarnings("serial")
public class AutomaticFillServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//获得页面传过来的字符串
String word = request.getParameter("word");
//将字符串保存在request对象中
request.setAttribute("word",word);
//将请求转发给视图层(注意Ajax中,这个所谓的视图层不返回页面,只返回数据,所以也可以称作是一个数据层)
//将"wordxml.jsp"处理后的数据发给 "JqueryAutoComplete.html"页面
request.getRequestDispatcher("wordxml.jsp").forward(request, response);
}
public void init() throws ServletException
{
}
public void destroy()
{
super.destroy();
}
}
wordxml.jsp
<%--
自动补全的Ajax实例
--%>
<%@ page contentType="text/xml; charset=UTF-8" language="java" %>
<!-- 返回xml数据的“视图层”暂时不做任何逻辑判断,先将所有的单词都返回、待前后台应用可以完整的协作后,在限制返回的内容 -->
<%
//页面端传送的字符串
String word = (String)request.getParameter("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("abandin".startsWith(word)){
%>
<word>abandin</word>
<%
}
if("breach".startsWith(word)){
%>
<word>breach</word>
<%
}
if("break".startsWith(word)){
%>
<word>break</word>
<%
}
if("bad".startsWith(word)){
%>
<word>bad</word>
<%}%>
</words>
相关推荐
Acronis Backup:Acronis备份策略设计原理.docx
phpEasyVCS-2.0.zip
2023-04-06-项目笔记-第三百五十一阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.349局变量的作用域_349- 2024-12-18
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
用户管理: 能够完成用户基本信息录入的注册和用户基本信息的修改。 管理员管理: 能够完成管理员对网站的商品信息管理(商品添加、商品审查)、会员管理(会员审查)、网站信息管理(新闻添加、修改删除、公告设置),以及常规设置(广告添加,友情链接)的功能。 搜索功能: 能过电子商品的名称进行搜索。 查询功能: 能够通过查看购物车对所选商品进行确定、挑选。 环境说明: 开发语言:Java,jsp JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea 部署容器:tomcat
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2540/CC2541上运行,如果是其他型号芯片,请自行调整。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、例程具有一定专业性,非专业人士请谨慎操作。
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
IO总结总结总结总结总结
系统能够对客户信息管理、订单管理、商品信息管理、供应商管理、库存管理,系统用户管理等信息提供存储、更新、查询、统计的功能。 环境说明: 开发语言:Java,jsp JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea 部署容器:tomcat
前台模块: 站内新闻:发布与视频教学相关的新闻和动态。 视频学习:提供视频教学内容,供用户学习。 在线留言:用户可以在线提交留言或反馈。 用户注册:允许新用户注册成为网站的会员。 在线论坛:提供一个在线讨论的平台。 资料下载:提供学习资料或其他相关文件的下载服务。 管理员模块: 系统用户管理:管理系统用户的账户信息。 注册用户管理:管理注册用户的资料和信息。 教师信息管理:管理教师的资料和信息。 站内新闻管理:管理网站新闻内容的发布和更新。 课程信息:管理课程的相关信息。 资料下载管理:管理可供下载的资料。 论坛管理:管理在线论坛的内容和用户互动。 注册用户模块: 教师资料修改:教师可以修改自己的个人信息。 作业发布管理:用户可以发布作业或相关任务。 在线资料下载:注册用户可以下载在线资料。 学生资料管理:学生可以管理自己的资料。 学生下载作业:学生可以下载教师发布的作业。 环境说明: 开发语言:Java,jsp JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea 部署容器:tomcat
汉普美的ERP简介、实施、应用.ppt
深圳混泥土搅拌站资金、现金、费用管理规定
98年的telnetBBS软件,配合worldgroup server使用(16位),是瀛海威时空客户端的英文原版。
5aaaaaaaaaaaaaaaaaaaaaa
这个项目是一个基础的Go微服务框架,适合作为微服务架构的学习项目。希望这个项目能帮助你入门Go语言的微服务开发!
此为报告样本,完整报告的框架结构
传送带中大块煤识别检测数据集,使用coco json格式对792张图片标注,标注图片和标注信息可参考博文:https://backend.blog.csdn.net/article/details/144513245
此工具能快速有效的修复系统缺失的DLL和DirectX文件
计算机组成原理课程设计(模型机).doc