首先让我说我是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>
答案 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;