手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >十分钟打造AutoComplete自动完成效果代码
十分钟打造AutoComplete自动完成效果代码
摘要:.老生常谈---XmlHttpRequest代码复制代码代码如下:varxmlHttp;functioncreateXmlHttpReque...

.老生常谈---XmlHttpRequest

代码

复制代码 代码如下:

var xmlHttp;

function createXmlHttpRequest()

{

if(window.ActieveXObject)

{

xmlHttp=new ActieveXObject("Microsoft.XMLHTTP");

}

else if(window.XMLHttpRequest)

{

xmlHttp=new XMLHttpRequest();

}

}

如果不用Jquery手写javascript,上面要改成XmlHttpRequest对象池,这就不写了。

.触发AutoComplete函数

代码

复制代码 代码如下:

function $E(argument)

{

return document.getElementById(argument);

}

function GetInfo(e)

{

var input=$E("Text1").value;

if(input.length<=0)

{

changeDisplay();

}

else

{

createXmlHttpRequest();

var keyword=e.value;

xmlHttp.onreadystatechange=readyStateChangeHandle;

var url="AutoComplete.ashx?keyword="+keyword+"&timeStamp="+new Date().getTime();

xmlHttp.open("GET",url,true);

xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

xmlHttp.send(null);

}

}

这里服务器后台是在.NET平台下的xxx.ashx一般处理程序响应客户端得请求,当然也可以用webserviece或者aspx.cs或WCF来响应客户端得请求,但是需要注意的是webservice响应客户端必须遵循遵循soap协议(当然也可以通过修改配置文件让webservice响应get或post请求),xxx.ashx和aspx.cs响应客户端要遵循http协议。当然后台也可以PHP或JAVA等。

.鼠标move变色

复制代码 代码如下:

function changecolor(event)

{

event.style.background="#00FFFF";

}

function changebackcolor(event)

{

event.style.background="#FFFFFF"

}

.选区隐藏与出现

代码

复制代码 代码如下:

function ChangeDivDisplay(e)

{

document.getElementById("Text1").value=e.firstChild.data;

var html="";

document.getElementById("searchResult").innerHTML=html;

document.getElementById("searchResult").style.visibility="hidden";

}

function changeDisplay()

{

var html="";

document.getElementById("searchResult").innerHTML=html;

document.getElementById("searchResult").style.visibility="hidden";

}

.回调函数

代码

复制代码 代码如下:

function readyStateChangeHandle()

{

if(xmlHttp.readyState==4)

{

if(xmlHttp.status==200)

{

if(xmlHttp.responseText!="]")

{

var resultDiv=$E("searchResult");

var josnStr=eval('('+xmlHttp.responseText+')');

var html="";

for (var key in josnStr)

{

html+= "<span onmousemove="changecolor(this)" onclick="ChangeDivDisplay(this)" onmouseout="changebackcolor(this)">"+josnStr[key].bookName +"<span>"+josnStr[key].bookCount+"本书</span></span>";

}

html+= "<span><a href="javascript:changeDisplay()">关闭</a></span>";

resultDiv.innerHTML=html;

document.getElementById("searchResult").style.visibility="visible";

}

else

{

changeDisplay();

}

}

}

}

这里我用的是json,当然也可以用XML或者字符串。

【十分钟打造AutoComplete自动完成效果代码】相关文章:

js实现带按钮的上下滚动效果

JQuery分屏指示器图片轮换效果实例

jQuery判断一个元素是否可见的方法

JavaScript中的私有成员

深入浅出分析javaScript中this用法

将HTML自动转为JS代码

JS的IE和Firefox兼容性集锦

Node.js实现JS文件合并小工具

打字效果

javascript实现图片跟随鼠标移动效果的方法

精品推荐
分类导航