<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript" type="text/javascript">
var xmlHttp;
var name=document.getElementById("TextBox1").value;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
else if(window.XMLHttpRequest)
{xmlHttp=new XMLHttpRequset();}
}
function startRequest()
{
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
var url="Default.aspx?username="+escape(name);
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function handleStateChange()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
document.getElementById("div1").innerText=xmlHttp.responseText;
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="div1">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div>
<a href="javascript:startRequest()">g</a>
</form>
</body>
</html>
Default.aspx
protected void Page_Load(object sender, EventArgs e)
{
string name = HttpContext.Current.Request.QueryString["username"];
string res = "This is the response from the server:\r\n" + "Hello," + name + "!";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Write(res);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
结果显示为:
把第二行:
var name=document.getElementById("TextBox1").value;
放到startRequest方法里。
function startRequest()
{
var name=document.getElementById("TextBox1").value;
...
我想你是要点链接的时候才读这里面的数据。
问题出在下面这行中的name上,你的name没有取到值
var url="Default.aspx?username="+escape(name);
也就是说你上面
var name=document.getElementById("TextBox1").value;
执行的时候,name变量并没有取到值
你把这段代码放到了head中,当代码执行的时候,TextBox1还没有出现呢,所以肯定会undefined,你试着把这段代码放到页面的最后(</body>之前)
如果还是不行,右键查看源代码,看下文本框的ID是不是不再是TextBox1?
var name=document.getElementById("<%=TextBox1.ClientID%>").value;