接收document.getElementById(...)为null

时间:2014-06-04 20:00:55

标签: javascript ajax

首先让我说我是javascript和ajax的新手,我搜索了这个网站和其他人的答案,但所有建议都不适合我。无论我做什么,readystate总是0,我总是在这一行得到一个NULL异常: var email = document.getElementById(“email”)。value;

我的目标是使用下拉框并选择名称并返回相关的电子邮件,这将在位于同一服务器和同一目录中的另一个文件中完成。但我无法克服这一点,我一直在努力弄清楚为什么会这样。

感谢任何帮助。感谢。

<!DOCTYPE html>
<html>
<head>
<script language="javascript" type="text/javascript">

var ajaxRequest;

function ajaxFunction(str)
{
  if ( str == "" )
  {
    document.getElementById("email").innerHTML="";
    return;
  }

  if (window.XMLHttpRequest)
  {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    ajaxRequest=new XMLHttpRequest();
  }
  else
  { // code for IE6, IE5
    ajaxRequest=new ActiveXObject("Microsoft.XMLHTTP");
  }

  ajaxRequest.onreadystatechange = function()
  {
    if ( ajaxRequest.readyState == 4)
    {
      if ( ajaxRequest.status==200) 
      {
        document.getElementById("email").innerHTML=ajaxRequest.responseText;
      }
    }
  }
  // Now get the value from user and pass it to server script.
  var email = document.getElementById("email").value;
  var queryString = "?email=" + email;

  queryString +=  "&title=" + title + "&usertype=" + usertype;
  ajaxRequest.open("GET", "file:///C:/ask.php" + queryString, true);
  ajaxRequest.send(null);

}

</script>
</head>

<body>

<form action="" method="POST">
  <select name="users" onchange="ajaxFunction(value)">
    <option value="">Select a person:</option>
    <option value="1">bill</option>
    <option value="2">ted</option>
  </select>
</form>
<br>
<div id="ajaxDiv"><b>Person info will be listed here.</b></div>

</body>

</html> 

2 个答案:

答案 0 :(得分:1)

我在HTML代码中看不到任何带有“email”id的元素,为什么不能为null?根本找不到。定义元素,与定义标识为ajaxDiv的另一个元素的方式相同:

  <input id="email" type="text" value="email@sample.com">     

然后,您将能够获取此元素的句柄并为其设置value属性。

答案 1 :(得分:-2)

我认为你应该使用

var email = document.getElementById("email").innerHTML;

而不是

var email = document.getElementById("email").value;