Ajax Suggest实例
Demo演示用户向一个标准的HTML表单中输入数据时网页如何与web服务器进行通信。
在下面的文本框中输入名字:
First Name:
Suggestions:
表单的 HTML 代码:
<form> First Name:<input type="text"id="txt1"
onkeyup="showHint(this.value)"
/> </form> <p>Suggestions: <spanid="txtHint"
></span></p>
其中span充当了由web服务器所取回的数据的位置占位符。
当用户输入数据时,showHint()函数就会被执行。当用户在文本域中输入数据时从键盘上移开时,函数就会被调用。
下面是JavaScript的showHint()函数的代码:
function showHint(str) { if (str.length==0
) { document.getElementById("txtHint").innerHTML=""; return; } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("您的浏览器不支持AJAX!"); return; } varurl
="gethint.asp"; url=url+"?q
="+str; url=url+"&sid
="+Math.random(); xmlHttp.onreadystatechange=stateChanged
; xmlHttp.open("GET",url,true); xmlHttp.send(null); }
上面的Demo也可以调用名字为GetXmlHttpObject() 的函数。此函数解决不同浏览器创建不同的XMLHTTP对象的问题。
function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
stateChanged() 函数的代码:
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
;
}
}
每当XMLHTTP对象状态改变时,stateChanged() 函数就会被执行。
当状态为“4”时,txtHint 占位符的内容就被响应文本来填充。
本文转自 王祖康 51CTO博客,原文链接:http://blog.51cto.com/wzk89/388969,如需转载请自行联系原作者