- 浏览: 86968 次
- 性别:
- 来自: 苏州
最新评论
-
javazeke:
自己支持一下,,,希望下周有help
求oracle11g和10g 双机热备文档 -
javazeke:
kimmking 写道mr_kairy 写道看你的结构 就是 ...
江湖求方案,类似SSO系统的需求 -
javazeke:
yangdefeng95802 写道LZ的图是什么软件画的?真 ...
江湖求方案,类似SSO系统的需求 -
javazeke:
mr_kairy 写道看你的结构 就是 SOA 解决方案。。 ...
江湖求方案,类似SSO系统的需求 -
javazeke:
threestone1026 写道使用cas了
感谢thre ...
江湖求方案,类似SSO系统的需求
自动补全
1. 页面有一个文本框,一个自动提示层,一个按
<script type="text/javascript" src="../js/jquery-1.3.2.js"></script> <script type="text/javascript" src="../js/autoComplete.js"></script> <div style="text-align: left; width: 500px;"> <input type="text" id="key" style="width: 400px;height:25px;" /> <input type="button" id="commit" style="background-color:#1874CD;width:70px;height:25px;border:0px;color:#ffffff;" value=" 提 交 "/> <div id="autoKey"></div> </div>
自动提示JavaScript…
//页面加载好,autoKey应该隐藏
$(document).ready(function(){
//定义高亮变量,控制上下键的选择
//-1代表不高亮任何行
var highlightindex = -1;
//提示层的子层数组
var completesVal;
//将要显示的提示
var keys;
//时间延迟对象
var timeDelay;
//获得输入input的对象
var keyInput=$("#key");
var keyInputOffset=keyInput.offset();
var autoDiv=$("#autoKey");
//提示层的样式
autoDiv.hide().css("border","1px solid #999999").css("position","absolute")
.css("top",keyInputOffset.top + keyInput.height() + 8 + "px")
.css("left",keyInputOffset.left + "px").width(keyInput.width() + 6)
.css("color","#aaaaaa").css("z-index","10").css("background-color","#FFFFFF");
//按键按下后与服务器的交互
keyInput.keyup(function(event){
//获取键盘事件对象
var keyEvent=event || window.event;
//判断键盘输入的值得范围
//1.输入的是正常的字母
//2.向上向下键
//3。回车键
var keyCode=keyEvent.keyCode;
if(keyCode !=38 && keyCode !=40 && keyCode != 13){
//获取当前文本框中的值
var currentVal=keyInput.val();
//如果当前的文本框内容为空,就不在向服务器发送请求
if(currentVal != ""){
//取消上次提交
window.clearTimeout(timeDelay);
//延迟500ms提交,防止频繁提交
timeDelay=window.setTimeout(function(){
$.post("../ParseParam",{paramInfo:currentVal},function(data){
//清空autoDiv的内容并且隐藏
autoDiv.html("");
//对回传的数据抽取,组成一个key的数组
keys=$(data).find("key");
keys.each(function(){
var keyval=$(this).text();
if(keyval !=null){
$("<div>").css("font-size","13px").css("height","18px").css("padding-top","1px").html(keyval).appendTo(autoDiv);
}
});
if(keys.length>0){
//为提示加上鼠标的选择功能
//鼠标over||out会触发事件,并高亮
//单击高亮层关闭提示层,并且把值传给文本框
completesVal=autoDiv.children("div");
//鼠标一移到autoKey上面,上下键的选择就取消
autoDiv.mouseover(function(){
//highlightindex不等于-1说明先前用上下键移动过
if(highlightindex != -1){
//定位到那个节点,取消其高亮
completesVal.eq(highlightindex).css("background-color","white").css("color","#aaaaaa");
//highlightindex = -1;
highlightindex = -1;
}
});
completesVal.each(function(){
var t=$(this);
t.css("cursor","pointer").mouseover(function(){
//加上mouseover事件
t.css("background-color","#7EC0EE").css("color","#000000");
}).mouseout(function(){
//mouseout事件
t.css("background-color","white").css("color","#aaaaaa");
}).click(function(){
//单击事件
keyInput.val(t.text());
autoDiv.hide();
});
});
highlightindex = -1;
autoDiv.show();
}else{
highlightindex = -1;
autoDiv.hide();
}
},"xml");
},500);
}
}else if(keyCode == 38 || keyCode ==40 || keyCode == 13){
//第一步先获得提示框里所有补全信息的数组
// var completesVal=$("#autoKey").children("div");考虑到效率,把这步放到全局
//向下键的控制
if(keyCode == 40){
//如果现在的高亮是存在的,那么我们就要移动highlightindex
if(highlightindex != -1){
//去掉当前高亮
completesVal.eq(highlightindex).css("background-color","white").css("color","#aaaaaa");
}
//移动高亮的指针,
//注意这里的highlightindex++一定要放在if的外面,
// 放在里面如果hightlightindex=-1,则永远也移动不了
highlightindex++;
//判断是否到了最后一个元素
if(highlightindex == completesVal.length){
highlightindex = 0;
}
//高亮当前highlightindex节点
completesVal.eq(highlightindex).css("background-color","#7EC0EE").css("color","#000000");
}
//向上键的控制
if(keyCode == 38){
if(highlightindex != -1){
completesVal.eq(highlightindex).css("background-color","white").css("color","#aaaaaa");
highlightindex--;
}
if(highlightindex ==-1){
highlightindex=completesVal.length;
}
//高亮当前highlightindex节点
completesVal.eq(highlightindex).css("background-color","#7EC0EE").css("color","#000000");
}
//enter键的控制
//1.按下enter键,把提示的值传给文本框
//2.关闭提示层
//3.提交
if(keyCode == 13){
if(highlightindex != -1){
//获取当前高亮值
var comsVal = completesVal.eq(highlightindex).text();
//给文本框赋值
keyInput.val(comsVal);
//高亮索引回归到初始化
highlightindex = -1;
//隐藏提示框
autoDiv.hide();
}else{
commitSearch();
//文本框失去焦点,不然按回车会不停的发出请求
keyInput.get(0).blur();
autoDiv.hide();
}
}
}
});
//提交按钮的事件
var commitBtn=$("#commit");
//commitBtn的click事件
commitBtn.click(commitSearch);
//提交函数
function commitSearch(){
var cv=keyInput.val();
//cv=encodeURIComponent(cv);
window.location.href="../SearchIndex?paramInfo="+cv;
// $.get("../SearchIndex",{paramInfo:cv});
}
//keyInput失去焦点后关闭提示层
//keyInput.blur(function(){
//autoDiv.hide();
//highlightindex = -1;
// });
});
后面的一部分被截断了,可以到我的首页,有续。。
发表评论
-
求oracle11g和10g 双机热备文档
2010-12-17 22:13 1564项目来了,,需求下来,,怕赔不起,,决定用热备 可怜的我,, ... -
江湖求方案,类似SSO系统的需求
2010-10-16 10:59 1482现有资料,大Boss交代我来弄,说实话,这东东我也不知道怎么 ... -
js array
2010-07-04 11:18 1023zhuan zi http://renxiangzyq.i ... -
Ldap之活动目录之userAccountControl
2010-04-22 10:27 3891When you open the properties fo ... -
Ldap之活动目录之属性
2010-04-22 10:19 1950“常规”标签 姓 Sn 名 Givename ... -
Ldap之活动目录介绍三
2010-04-22 10:12 1257安装第二台域控制器 在安装完第一台域控制器后其域名为 n ... -
Ldap之活动目录介绍二
2010-04-22 10:10 1316运行 Active Directory 安 ... -
Ldap之活动目录介绍一
2010-04-22 09:43 2682最近一直在做java通过Ldap去操作活动目录数据的东东,过程 ... -
我迷茫,我应该怎么走。望各位JE大哥指点!
2010-03-26 09:56 1706小弟六月毕业,在学校还算好学生,从大二起接触编程,,那时的编程 ... -
xp桌面回收站恢复
2010-02-21 19:14 868开始-运行gpedit.msc-本地计算机策略-用户配 ... -
MyEclipse7.5注册机
2010-01-25 17:29 960首先感谢提供源码的那位大牛,我只是做成了exe执行文件而已 -
DSA和RSA算法的差异
2009-11-20 19:13 15971978年就出现了这种算法 ... -
仿Google自动补全 jquery
2009-11-20 16:40 2880应大家要求,发一个包,方便大家使用,有问题欢迎e-mail : ... -
对称加密的两种方式
2009-11-18 22:33 1889对称加密,这东东现在 ... -
java简单对象池
2009-11-10 20:53 3980在项目中用到,自己写了个对象池的管理(创建、保留、获取),那种 ... -
仿Google自动补全 jQuery 不含索引处理 2
2009-11-08 14:39 1082Servlet。。。。。。。。。。。。。。。。。 pu ... -
Java数据库通用查询及封装
2009-11-08 13:54 6285Java数据库通用查询及封装 时常在网上看到,有关Java数据 ... -
Java实现快排的算法
2009-10-14 22:28 2955Java实现快排的算法 public class Quick ... -
Collection List Set Map 区别记忆
2009-10-13 20:15 934一篇对Java集合讲解不错的文档,不是我写的,转过来和大家分享 ... -
List Set Map实现机制
2009-10-13 20:07 1901List接口对Collection进行 ...
相关推荐
标题“改进版 jquery 仿百度谷歌自动补全输入(支持中文)”涉及到的是一个基于jQuery的前端开发技术,旨在实现类似百度和谷歌搜索框的自动补全功能,而且这一版本特别优化了对中文字符的支持。在网页交互设计中,...
【仿谷歌自动补全】是一种常见的前端开发技术,主要用于提高用户在输入框中搜索或填写信息时的效率和用户体验。谷歌自动补全功能是通过分析用户的输入,预测并显示可能的搜索词,使得用户可以快速选择合适的选项,而...
修改网上的代码完成的,使用jquery+JavaScript形式写的,服务端代码用java编写,当然你可以用其他任何语言编写。suggest是MyEclipse的一个工程,直接import既可用。也可以提取里面的文件自己修改
**jQuery实现Google自动补全效果** 在Web开发中,用户输入的实时提示功能,也称为自动补全(Autocomplete)或智能搜索,极大地提升了用户体验。本篇将介绍如何使用jQuery库来实现类似Google搜索那样的自动补全效果...
在本篇博客“AJAX学习总结(九)---Jquery实例:仿googlesuggest自动补全功能”中,作者分享了如何使用jQuery实现一个类似Google Suggest的自动补全功能,这是一种常见的前端交互设计,广泛应用于搜索框输入时提供...
在Google自动补全功能中,jQuery将扮演核心角色,帮助我们处理用户输入并实时更新建议列表。 1. **基本原理**:自动补全功能基于用户的输入动态生成建议列表。当用户在搜索框中键入字符时,jQuery监听键盘事件,...
本实例将探讨如何将这两者整合,通过AJAX技术实现一个仿Google Suggest的自动补全功能,该功能通常用于输入框中,为用户提供动态搜索建议。我们将详细解析这个实例中的各个组成部分。 首先,`index.jsp`是用户界面...
**jQuery 实现仿搜索引擎文本框自动补全插件** 在 Web 开发中,为了提高用户体验,经常会在输入框中使用自动补全(Autocomplete)功能,就像我们在使用搜索引擎时,输入关键词后会看到下拉的建议列表。jQuery 是一...
jQuery 自动补全插件是一种常见的前端开发工具,它为用户在输入框中提供动态建议,提高了用户体验,尤其在处理大量数据输入时显得尤为重要。本示例将涵盖如何使用jQuery实现自动补全功能,包括解决中文乱码问题以及...
总的来说,仿谷歌百度实现输入自动补全功能是一个涉及前端、后端以及算法设计的综合性项目。通过这个项目,你可以深入理解Web交互设计,提升JavaScript编程能力,并掌握如何构建高效的API接口。同时,这也是一个很好...
jQuery百度搜索自动补全插件基于流行的JavaScript库jQuery和typeahead.js实现,为网页上的搜索框提供了高效且用户友好的自动补全功能。这个插件主要用于提升用户体验,尤其是在需要处理大量数据并希望用户能快速找到...
在本文中,我们将深入探讨如何使用Jquery实现一个仿搜索引擎文本框自动补全功能,这是一个在Web开发中常见的用户体验优化工具。此项目实践基于人工智能的背景,利用JavaScript库Jquery来提升用户在搜索框中的输入...
描述中提到的"jquery.autocomplete.min.js插件 仿google实现自动补全"是指使用jQuery UI库中的Autocomplete组件,这是一个轻量级的插件,用于实现文本输入框的自动补全功能。Google的搜索框就具有这种特性,当用户在...
**jQuery仿百度搜索下拉框自动补全代码插件** 在网页开发中,为了提供用户友好的搜索体验,经常会使用到自动补全功能,就像百度搜索引擎那样。这种功能可以极大地提高用户输入效率,减少用户的输入错误,提升用户...
在提供的压缩包文件"GoogleSuggest"中,可能包含了一个关于谷歌搜索建议的示例,它展示了如何使用jQuery UI Autocomplete来模拟谷歌搜索的自动补全效果。通过分析和学习这个示例,你可以更深入地理解如何与服务器...
在本项目中,我们将讨论如何实现一个仿百度、Google、谷歌的搜索引擎自动补全功能。 首先,自动补全的核心在于关键词匹配算法。常见的算法有Trie树(字典树)、Levenshtein距离(编辑距离)和基于TF-IDF的文本...
自动补全以及jquery相关案例和验证码
**jQuery自动补全插件详解** 在Web开发中,用户输入常常是交互体验的重要环节,为了提高用户体验,很多网站和应用引入了自动补全(Autocomplete)功能。jQuery作为一个广泛使用的JavaScript库,提供了丰富的插件...
总的来说,使用jQuery实现仿搜索引擎文本自动补全涉及到了前端开发的多个方面,包括事件处理、DOM操作、Ajax通信以及性能优化等,是提升用户体验的重要手段。通过熟练掌握这些技术,开发者可以构建更加互动和用户...