0

我有一个用于在表单中输入姓名的文本框。文本框下方的 div 在 AJAX 的帮助下显示数据库中注册用户的姓名,以用户输入的字母开头。用户还可以单击用户名和那些名称将放置在文本框中。div 也会消失。我已经为文本框编写了 onblur 事件,以便在失去文本框的焦点时,下面创建的 div 应该消失。这对我有用。我的问题是我无法从下面的 div 中选择名称,因为在模糊事件触发时。我需要 onblur 事件,因为除了选择用户名功能以外的所有其他事件都需要在模糊事件上使用此功能。我的代码是这样的:

 <input id="venue" type="text" onkeyup="showData(this.value)" 
        onblur="return removediv()"/>
 <div id="venuesearch">
 </div>//div for displaying the set of usernames with help of AJAX

我的 JavaScript 代码是:

 function showData(str)
 {
      if (str.length==0)
      {
          document.getElementById("venuesearch").innerHTML = "";
          document.getElementById("venuesearch").style.border = "0px";
          return;
      }

      // some AJAX code here 
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
          document.getElementById("venuesearch").innerHTML=xmlhttp.responseText;
          document.getElementById("venuesearch").style.border="1px solid #A5ACB2";
          document.getElementById("venuesearch").style.display="block";
          document.getElementById("venuesearch").style.overflow="show";     
      }

      xmlhttp.open("GET","search_venue.php?venue="+str,true);
      xmlhttp.send();
 }

里面search_venue.php

有一个方法叫做showVal()onClick 列的事件。

function showVal(val)
{
    document.getElementById("venue").value = val;
document.getElementById("venuesearch").style.display = "none";
}

function removediv()
{
    document.getElementById("venuesearch").style.display="none";
return false;
}
4

1 回答 1

1

尝试这个 :

function removediv()
{
   document.getElementById("venuesearch").style.display="none";
   var venue = document.getElementById("venue").value;
   return false;
}
于 2013-03-09T12:14:31.127 回答