日期:2014-05-16 浏览次数:20851 次
?
我们已看到 AJAX 可被用来创建更多交互性的应用程序。
Suggestions:
————————————————————————
?
例子解释 - HTML表单
表单的 HTML 代码:
?
<form> First Name:<input type="text" id="txt1" onkeyup="showHint(this.value)" /> </form> <p>Suggestions: <span id="txtHint"></span></p>?正如您看到的,这是一个简单的带有名为 "txt1" 输入域的 HTML 表单。输入域的事件属性定义了一个由 onkeyup 事件触发的函数。
?
?
表单下面的段落包含了一个名为 "txtHint" 的 span,这个 span 充当了由 web 服务器所取回的数据的位置占位符。
?
当用户输入数据时,名为 "showHint()" 的函数就会被执行。函数的执行是由 "onkeyup" 事件触发的。另外需要说明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数 showHint 就会被调用。
function showHint(str)
{
  if (str.length==0)
    { 
    document.getElementById("txtHint").innerHTML="";
    return;
    }
  xmlHttp=GetXmlHttpObject()
  
  if (xmlHttp==null)
    {
    alert ("您的浏览器不支持AJAX!");
    return;
    }
var url="gethint.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
?每当有字符输入文本框时,此函数就会执行。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;
}
?function stateChanged() 
{ 
  if (xmlHttp.readyState==4)
  { 
  document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
  }
}
?每当 XMLHTTP 对象的状态发生改变时,stateChanged() 函数就会执行。当状态变更为 4(“完成”)时,txtHint 占位符的内容就被响应文本来填充。
?
?