首页 新闻 搜索 专区 学院

取不到值......

0
悬赏园豆:20 [已解决问题] 解决于 2008-12-24 18:48

<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();

    }

结果显示为:

This is the response from the server:
Hello,undefined!
不知道哪里出错了!
zlq的主页 zlq | 初学一级 | 园豆:10
提问于:2008-12-24 16:34
< >
分享
最佳答案
0

把第二行:

    var name=document.getElementById("TextBox1").value;

放到startRequest方法里。

   function startRequest()
    {

    var name=document.getElementById("TextBox1").value;

    ...

我想你是要点链接的时候才读这里面的数据。

BB_Coder | 小虾三级 |园豆:895 | 2008-12-24 18:30
其他回答(2)
0

问题出在下面这行中的name上,你的name没有取到值
var url="Default.aspx?username="+escape(name);

也就是说你上面
var name=document.getElementById("TextBox1").value;

执行的时候,name变量并没有取到值

你把这段代码放到了head中,当代码执行的时候,TextBox1还没有出现呢,所以肯定会undefined,你试着把这段代码放到页面的最后(</body>之前)

如果还是不行,右键查看源代码,看下文本框的ID是不是不再是TextBox1?

丁学 | 园豆:18530 (专家六级) | 2008-12-24 16:50
0

var name=document.getElementById("<%=TextBox1.ClientID%>").value;

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-24 17:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册