热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle输入自动提示,JSP+ajax实现输入框自动补全功能实例代码

Stringpathrequest.getContextPath();StringbasePathrequest.getScheme():request.getServerNa

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>

查找

function mSift_SeekTp(oObj, nDire) {

var nPosition = null;

if (oObj.getBoundingClientRect && !document.all) {

var oDc = document.documentElement;

switch (nDire) {

case 0:

return oObj.getBoundingClientRect().top + oDc.scrollTop;

case 1:

return oObj.getBoundingClientRect().right + oDc.scrollLeft;

case 2:

return oObj.getBoundingClientRect().bottom + oDc.scrollTop;

case 3:

return oObj.getBoundingClientRect().left + oDc.scrollLeft;

}

} else {

if (nDire == 1 || nDire == 3) {

nPosition = oObj.offsetLeft;

} else {

nPosition = oObj.offsetTop;

}

if (arguments[arguments.length - 1] != 0) {

if (nDire == 1) {

nPosition += oObj.offsetWidth;

} else if (nDire == 2) {

nPosition += oObj.offsetHeight;

}

}

if (oObj.offsetParent != null) {

nPosition += mSift_SeekTp(oObj.offsetParent, nDire, 0);

}

return nPosition;

}

}

function mSift(cVarName, nMax) {

this.oo = cVarName;

this.Max = nMax;

}

mSift.prototype = {

Varsion : 'v2010.10.29 by AngusYoung | mrxcool.com',

Target : Object,

TgList : Object,

Listeners : null,

SelIndex : 0,

Data : [],

ReData : [],

Create : function(oObj) {

var _this = this;

var oUL = document.createElement('ul');

oUL.style.display = 'none';

oObj.parentNode.insertBefore(oUL, oObj);

_this.TgList = oUL;

oObj.onkeydown = oObj.onclick = function(e) {

_this.Listen(this, e);

};

oObj.onblur = function() {

setTimeout(function() {

_this.Clear();

}, 100);

};

},

Complete : function() {

},

Select : function() {

var _this = this;

if (_this.ReData.length > 0) {

_this.Target.value = _this.ReData[_this.SelIndex].replace(

/\*/g, '*').replace(/\|/g, '|');

_this.Clear();

}

setTimeout(function() {

_this.Target.focus();

}, 10);

_this.Complete();

},

Listen : function(oObj) {

var _this = this;

_this.Target = oObj;

var e = arguments[arguments.length - 1];

var ev = window.event || e;

switch (ev.keyCode) {

case 9://TAB

return;

case 13://ENTER

_this.Target.blur();

_this.Select();

return;

case 38://UP

_this.SelIndex = _this.SelIndex > 0 ? _this.SelIndex - 1

: _this.ReData.length - 1;

break;

case 40://DOWN

_this.SelIndex &#61; _this.SelIndex <_this.ReData.length - 1 ? _this.SelIndex &#43; 1

: 0;

break;

default:

_this.SelIndex &#61; 0;

}

if (_this.Listeners) {

clearInterval(_this.Listeners);

}

_this.Listeners &#61; setInterval(function() {

_this.Get();

}, 10);

},

Get : function() {

var _this &#61; this;

if (_this.Target.value &#61;&#61; &#39;&#39;) {

_this.Clear();

return;

}

if (_this.Listeners) {

clearInterval(_this.Listeners);

}

;

_this.ReData &#61; [];

var cResult &#61; &#39;&#39;;

for ( var i &#61; 0; i <_this.Data.length; i&#43;&#43;) {

if (_this.Data[i].toLowerCase().indexOf(

_this.Target.value.toLowerCase()) >&#61; 0) {

_this.ReData.push(_this.Data[i]);

if (_this.ReData.length &#61;&#61; _this.Max) {

break;

}

}

}

var cRegPattern &#61; _this.Target.value.replace(/\*/g, &#39;*&#39;);

cRegPattern &#61; cRegPattern.replace(/\|/g, &#39;|&#39;);

cRegPattern &#61; cRegPattern.replace(/\&#43;/g, &#39;\\&#43;&#39;);

cRegPattern &#61; cRegPattern.replace(/\./g, &#39;\\.&#39;);

cRegPattern &#61; cRegPattern.replace(/\?/g, &#39;\\?&#39;);

cRegPattern &#61; cRegPattern.replace(/\^/g, &#39;\\^&#39;);

cRegPattern &#61; cRegPattern.replace(/\$/g, &#39;\\$&#39;);

cRegPattern &#61; cRegPattern.replace(/\(/g, &#39;\\(&#39;);

cRegPattern &#61; cRegPattern.replace(/\)/g, &#39;\\)&#39;);

cRegPattern &#61; cRegPattern.replace(/\[/g, &#39;\\[&#39;);

cRegPattern &#61; cRegPattern.replace(/\]/g, &#39;\\]&#39;);

cRegPattern &#61; cRegPattern.replace(/\\/g, &#39;\\\\&#39;);

var cRegEx &#61; new RegExp(cRegPattern, &#39;i&#39;);

for ( var i &#61; 0; i <_this.ReData.length; i&#43;&#43;) {

if (_this.Target.value.indexOf(&#39;*&#39;) >&#61; 0) {

_this.ReData[i] &#61; _this.ReData[i].replace(/\*/g, &#39;*&#39;);

}

if (_this.Target.value.indexOf(&#39;|&#39;) >&#61; 0) {

_this.ReData[i] &#61; _this.ReData[i].replace(/\|/g, &#39;|&#39;);

}

cResult &#43;&#61; &#39;

&#39;

&#43; _this.ReData[i]

.replace(

cRegEx,

function(s) {

return &#39;&#39;

&#43; s &#43; &#39;&#39;;

});

&#43;&#39;

&#39;;

}

if (cResult &#61;&#61; &#39;&#39;) {

_this.Clear();

} else {

_this.TgList.innerHTML &#61; cResult;

_this.TgList.style.cssText &#61; &#39;display:block;position:absolute;background:#fff;border:#090 solid 1px;margin:-1px 0 0;padding: 5px;list-style:none;font-size:12px;&#39;;

_this.TgList.style.top &#61; mSift_SeekTp(_this.Target, 2) &#43; &#39;px&#39;;

_this.TgList.style.left &#61; mSift_SeekTp(_this.Target, 3) &#43; &#39;px&#39;;

_this.TgList.style.width &#61; _this.Target.offsetWidth - 12 &#43; &#39;px&#39;;

}

var oLi &#61; _this.TgList.getElementsByTagName(&#39;li&#39;);

if (oLi.length > 0) {

oLi[_this.SelIndex].style.cssText &#61; &#39;background:#36c;padding:0 5px;line-height:20px;cursor:default;color:#fff;&#39;;

}

},

ChangeOn : function(oObj) {

var oLi &#61; this.TgList.getElementsByTagName(&#39;li&#39;);

for ( var i &#61; 0; i

oLi[i].style.cssText &#61; &#39;padding:0 5px;line-height:20px;cursor:default;&#39;;

}

oObj.style.cssText &#61; &#39;background:#36c;padding:0 5px;line-height:20px;cursor:default;color:#fff;&#39;;

},

Clear : function() {

var _this &#61; this;

if (_this.TgList) {

_this.TgList.style.display &#61; &#39;none&#39;;

_this.ReData &#61; [];

_this.SelIndex &#61; 0;

}

}

}

//建立实例&#xff0c;第一个参数是实例对象的名称&#xff0c;第二个是最多显示的数量

var oo &#61; new mSift(&#39;oo&#39;, 20);

//获取数据

function loadXMLDoc(str) {

var xmlhttp;

if (window.XMLHttpRequest) {// code for IE7&#43;, Firefox, Chrome, Opera, Safari

xmlhttp &#61; new XMLHttpRequest();

} else {// code for IE6, IE5

xmlhttp &#61; new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange &#61; function() {

if (xmlhttp.readyState &#61;&#61; 4 && xmlhttp.status &#61;&#61; 200) {

oo.Data &#61; xmlhttp.responseText.split("|");

}

};

xmlhttp.open("GET", "AjaxServlet?name&#61;"&#43;str, true);

xmlhttp.send();

}

//指定文本框对象建立特效

oo.Create(document.getElementById(&#39;abc&#39;));



推荐阅读
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
author-avatar
琳琳小朋友m
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有