<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>js自动提示效果</title>
</head>
<script language="javascript">
var intIndex=0;arrList = new Array();
//将初始化的列表转换成数组
function dearray(str)//定义array
{
arrList = str.split(",");
intIndex = arrList.length;
}
//初始化下拉列表项
function begin()
{
init();
var str="邢晓璐,邢晓红";
dearray(str);
downList(arrList,"wd");
}
function init()
{
if(arrList.constructor!=Array)
{
alert("downList初始化失败:第一个参数非数组!");
return;
}
arrList.sort( function(a, b)
{
if(a.length>b.length)return 1;
else if(a.length==b.length)return a.localeCompare(b);
else return -1;
});
}
function downList(arrList,objInputId)
{
var objouter=document.getElementById("keysList"); //显示的DIV对象
var objInput = document.getElementById(objInputId); //文本框对象
var selectedIndex=-1;
var intTmp; //循环用的
if (objInput==null)
{
alert("downList初始化失败:没有找到"+objInputId+"文本框");
return;
}
//文本框失去焦点
objInput.onblur=function(){
objouter.style.display="none";
}
//文本框按键抬起
objInput.onkeyup=checkKeyCode;
//文本框得到焦点
objInput.onfocus=checkAndShow;
//判断按下的安键
function checkKeyCode(evt)
{
evt = evt || window.event;
var keyCode = window.event ? evt.keyCode : evt.which;
//var keyCode = String.fromCharCode(key);
if (keyCode==40||keyCode==38)
{//下上
var isUp=false
if(keyCode==40) isUp=true;
chageSelection(isUp);
}
else if (keyCode==13)
{//回车
outSelection(selectedIndex);
}
else
{
checkAndShow(evt);
}
divPosition(evt);
}
function checkAndShow(evt)
{
var strInput = objInput.value;
if (strInput!="")
{
divPosition(evt);
selectedIndex=-1;
objouter.innerHTML ="";
for (intTmp=0;intTmp<arrList.length;intTmp++)
{
if (arrList[intTmp].substr(0, strInput.length)==strInput)
{
addOption(arrList[intTmp]);
}
}
objouter.style.display="";
}
else
{
objouter.style.display="none";
}
//想下拉列表里添加匹配项
function addOption(value)
{
objouter.innerHTML +="<div onmouseover=this.className=\"sman_selectedStyle\";document.getElementById(\""+objInputId+"\").value=\"" + value + "\" onmouseout=this.className=\"\" onmousedown=document.getElementById(\""+objInputId+"\").value=\"" + value + "\">" + value + "</div>"
}
}//end checkAndShow()
function chageSelection(isUp)
{
if (objouter.style.display=="none")
{
objouter.style.display="";
}
else
{
if (isUp)
selectedIndex++;
else
selectedIndex--;
}
var maxIndex = objouter.childNodes.length-1;
if (selectedIndex<0){selectedIndex=0;}
if (selectedIndex>maxIndex) {selectedIndex=maxIndex;}
for (intTmp=0;intTmp<=maxIndex;intTmp++)
{
if (intTmp==selectedIndex)
{
objouter.childNodes[intTmp].className="sman_selectedStyle";
//当上下键移动时,将选中的文本写到文本框中
document.getElementById(objInputId).value=objouter.childNodes[intTmp].innerHTML;
}
else
{
objouter.childNodes[intTmp].className="";
}
}
}
function outSelection(Index)
{
objInput.value = objouter.childNodes[Index].innerHTML;
objouter.style.display="none";
}
//显示下拉列表项
function divPosition(evt)
{
var e = objInput;
var ie = (document.all)? true:false
//定义列表区在不同浏览器中的位置
if (ie)
{
var top = 0;
var left = -2;
}
else
{
var top = 2;
var left = 0;
}
while (e.offsetParent)
{
left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
e = e.offsetParent;
}
left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
objouter.style.top = (top + objInput.clientHeight) + "px";
objouter.style.left = left + "px";
objouter.style.width= objInput.clientWidth+1 + "px";
}
}//end downList()
function getAbsoluteHeight(ob)
{
return ob.offsetHeight;
}
function getAbsoluteWidth(ob)
{
return ob.offsetWidth;
}
function getAbsoluteLeft(ob)
{
var mendingLeft = ob .offsetLeft;
while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" )
{
mendingLeft += ob .offsetParent.offsetLeft;
mendingOb = ob.offsetParent;
}
return mendingLeft;
}
function getAbsoluteTop(ob)
{
var mendingTop = ob.offsetTop;
while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" )
{
mendingTop += ob.offsetParent.offsetTop;
ob = ob.offsetParent;
}
return mendingTop;
}
Number.prototype.NaN0 = function()
{
return isNaN(this)?0:this;
}
//出现光标
document.write("<div id=\"keysList\" style=\"position:absolute;display:none;background:#FFFFFF;border: 1px solid #CCCCCC;font-size:14px;cursor: default;\" onblur> </div>");
document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
</script>
<body onLoad="begin()">
<form name="search" action="" method="get">
<input autocomplete="off" type="text" id="wd" name="wd">
</form>
</body>
</html>
分享到:
相关推荐
因此简单用div写了一个alert提示框,并自动关闭。 效果图 css样式 /*弹出消息对话框样式*/ .show_alert_box{ width:100%; height:100%; position:fixed; top:0px; left:0px; background-color:rgba(0,0,0,0.6); ...
jQuery输入框自动提示车牌号码验证效果, 输入车牌号,下方提示,例如输入w ,则出现皖 ,这样的一个效果,在商城网站或者企业网站都会用到搜索的功能,与此功能类似,可以参考,php中文网推荐下载!
文本框下拉列表自动提示效果,用户在输入一个或多个值会自动提示数据库里面的值 RecommResource.aspx和RecommResource.aspx.cs文件是可以动态生成JS文件,另外外部还有一个JS
JS实现简单实用的自动动态tips提示信息框(小的气泡框)效果
个人从网上搜集的国外JS高手写的特效,全部都是封装完整的,特效包括仿windows、outlook等的各种折叠窗口,代码自动高亮,css圆角,图片倒影效果等,很有学些价值。 包括以下效果: CSS圆角边框 tab 侧栏式折叠菜单 ...
使用JAVASCRIPT实现弹出框,过一段时间自动消失.txt
65:___自动播放——Js幻灯片缓冲效果 66:___规定区域的JS拖动展示效果 67:___超漂亮Js+css图片幻灯切换 68:___马赛克效果的JS图片切换代码 69:___鼠标放到图片上会滑出提示文字 70:___鼠标滑过,缩略图放大显示(纯...
自动在文本框提示信息自动在文本框提示信息自动在文本框提示信息自动在文本框提示信息 jquery
22.模仿MSN消息提示的效果.html 23.皮肤无刷新切换.html 24.去掉点击链接时出现的虚线.html 25.全屏广告代码.html 26.如何实现faq折叠效果.html 27.如何用css自定义鼠标形状?.html 28.设为主页后刷新不在显示提示....
这个是旧版 请下载新版 http://download.csdn.net/source/1214916
js 效果 文本框超出字符提示并且自动回删
这里介绍的JavaScript自动弹出窗口并自动关闭窗口,JS实现此特效似乎很简单,打开网页后即显示一个弹出窗口,之后会自动离开,使用了window.open和document.open();以及document.close();对象共同来实现,现在似乎用...
JS 实现浏览器的 title 闪烁、滚动、声音提示、通知,没有依赖. 它不会干扰任何 JavaScript 库或框架。有合理的体积 5.05kb (gzipped: 1.75kb),
JS实现简单实用的自动动态tips提示信息框(小的气泡框)效果.zip
<!... <... <head> ...meta charset="utf-8" />...仿百度搜索框的联想词提示效果js代码<... 这是一款纯javaScript实现的仿百度搜索框联想词提示代码,搜索框输入文字自动提示相关联想词js特效。
文本框输入 @ 符号的输入提示的JS代码,类似搜索框的提示,输入指定的字符会弹出提示。和自动完成功能有些区别。
第1章 javascript概述 1 1.1 什么是脚本语言 2 1.2 javascript简介 2 1.3 javascript与java的关系 3 1.4 javascript的基本构成 4 1.4.1 基本数据类型 4 1.4.2 变量 4 1.4.3 常量 5 1.4.4 表达式 6 1.4.5 ...
JavaScript 制作带自动提示的文本框,需要的朋友可以参考下。