以某种方式将自动完成 Div 附加到输入文本框

Somehow attaching Autocomplete Div with the entry textbox

所以我构建了这个带有搜索框的页面。当您在搜索框中输入名称时,它会使用 ajax 连接到另一个页面,使用搜索条件来查询我们的数据库,并且 returns "like" 中搜索条目的结果一个实时的 div 框(幸运的是它的速度很快 return)。所以我有这个工作。这是我的问题。 Div 本身需要附加到搜索框,因此它的行为类似于 Google 的搜索框,当您键入内容时,自动建议的行为类似于下拉列表搜索字段。我做了一些研究,看起来 HTML5 有一个允许这样做的内置标签。不幸的是,我没有使用 HTML5。任何帮助,将不胜感激。我想要做的就是让 div 像搜索字段中的 "dropdown" 一样,一旦它 return 的结果,您可以根据需要使用键盘滚动浏览。我还附上了它现在的样子的屏幕截图(图像的左侧)和我希望它如何运行的示例(图像的右侧)

在此先感谢您的帮助!

这是 JavaScript/HTML(主页)的代码:

 <script>
    var xmlHttp
    function showHint(str, box, thisForm, autoSubmit)
    {
     if (str.length==0)
     { 
      document.getElementById("txtHint").innerHTML="";
      return;
     }

    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
      {
        alert ("Your browser does not support this feature. Please search manually.");
        return;
      } 

    var url="gethint.asp";
    url=url+"?q="+str;
    url=url+"&b="+box;
    url=url+"&f="+thisForm;
    url=url+"&a="+autoSubmit;
    url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    } 


function stateChanged() 
{ 
    if (xmlHttp.readyState==4)
    { 
        document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
    }
}

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;

}


</script>

<font face="calibri">
<form action="" method="post">
      <input type="text" id="txt1" onkeyup="showHint(this.value,'txt1','form1',true)" autocomplete="off" style="width: 250px;"/> 
      <div id="txtHint"></div>
</form>
</font>

下面是它监听查询的页面代码:

    <!--#include file="Databases.asp"-->
<%

response.expires=-1

Dim rsWords

Dim rsWords_numRows

Dim q

Dim b

Dim hint

q=ucase(request.querystring("q"))

b=(request.querystring("b"))

f=(request.querystring("f"))

a=(request.querystring("a"))

hint=""




Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open = "Provider=SQLOLEDB;Data Source=" & DatabaseServerR & ";Integrated Security=SSPI;Network Library=DBMSSOCN;Initial Catalog=" & Database_R & ";"
    Set rsWords = Conn.Execute ("SELECT TOP 20 WKR_FLL_NM, WDW_LGON_ID FROM dbo.HPeepzs With(NoLock) WHERE WKR_FLL_NM LIKE'" + q + "%' OR WDW_LGON_ID LIKE'" + q + "%' OR WKR_ID LIKE'" + q + "%' ORDER BY WKR_FLL_NM ASC")





If Not rsWords.EOF Then

'If entrytype = 1 Then
    'Do While Not rsWords.EOF
    '   If trim(hint) = "" Then
    '       hint = "<a href=""javascript:setTextBox('" & rsWords("PC_Name") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("PC_Name") & "</a>"
    '   Else
    '       hint = hint & "<a href=""javascript:setTextBox('" & rsWords("PC_Name") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("PC_Name") & "</a>"
    '   End If
    '   rsWords.MoveNext()
    'Loop
'Else
    Do While Not rsWords.EOF
        If trim(hint) = "" Then
            hint = "<li> <a href=""javascript:setTextBox('" & rsWords("WDW_LGON_ID") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("WKR_FLL_NM") & " (" & rsWords("WDW_LGON_ID") & ")</a>"
        Else
            hint = hint & "<li> <a href=""javascript:setTextBox('" & rsWords("WDW_LGON_ID") & "','" & b & "','" & f & "','" & a & "');"">" & rsWords("WKR_FLL_NM") & " (" & rsWords("WDW_LGON_ID") & ") </a>"
        End If
        rsWords.MoveNext()
    Loop
'End If

End If

if trim(hint)="" then 

  response.write("Unable To Find Your Search")

else

  response.write(hint)

end if


rsWords.Close()
Conn.Close

Set rsWords = Nothing
Set Conn = Nothing
%>

所以,我想好了要做什么。我只是将 div 放在搜索字段下方,它充当弹出式下拉菜单,在使用边距样式输入搜索时弹出

<div id="txtHint" style="position:absolute;margin-top:2px;margin-left:0px;z-index: 99 !important;"></div>