我创建的是ASP.NET AJAX-Enabled Web site项目(没加ScriptManager控件,整个项目也没用到任何AJAX控件)
有个JS方法报如下错误:行:44
char:9
错误:位置的运行时错误
代码:0
URL:http://localhost:3670/AJAXTestWeb/Default2.aspx
出错方法如下alert('11')可正常弹出 38   function DataResult()
39   { 
40        if (xmlHttp.readyState==4)
41        { 
42             alert('11')
43             document.getElementById('Text1').innerHTML='111111';
44             //document.getElementById('Text1').innerHTML=xmlHttp.responseText;
45 
46         }
47    } HTML页<td style="width: 149px">
                    <input id="Text1" type="text" />
</td>
哪的问题啊 是不是因为我创建的是ASP.NET AJAX项目啊?

解决方案 »

  1.   

    支持楼上。。你的text应该是输入框吧输入框用。。value
      

  2.   

    晕,忘了 最开始我用的是个span改成text了 见笑了不过还有个问题 我下面注释的那句话 去掉注释 正常AJAX处理页面 传回来的值应该是"001,002,003"
    为什么 实际运行完结果是这样的 这个是不是因为我创建的是ASP.NET AJAX项目啊?如何解决
    整个下面的全都是 Text1.value 001,002,003<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head><title> 无标题页</title></head><body>    <form name="form1" method="post" action="AjaxApplication.aspx?case=select1Changed&amp;select1Id=1" id="form1"><div><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGQ3YKo6/uiOnj4e1hCUvPgIJvv/1A==" /></div>    <div>        </div>    </form></body></html>
      

  3.   

     document.getElementById('Text1').value='111111'; 
      

  4.   

    我要的字符串里 后面还跟了整个Ajax处理页面的信息也被传回来了?
    Ajax页代码如下
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request["case"].ToString() == "select1Changed")
            {            DataTable dt = bll.getBFByKS(Request["select1Id"].ToString());
                if (dt.Rows.Count > 0)
                {
                    string str = "";
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        str += dt.Rows[i]["病房名称"].ToString() + ",";
                    }
                    str = str.Remove(str.Length - 1);
                    Response.Write(str);
                }
            }
    }我设断点 在Response.Write(str);时 str还是"001,002,003"呢啊
      

  5.   

    你再最后再加个Response.End() 然后把那个页面上的html除了第一句话<%@ Page那行之外全部删光 试试
      

  6.   

    很明显 那么一大堆"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title> 无标题页 </title> </head> <body>    <form name="form1" method="post" action="AjaxApplication.aspx?case=select1Changed&amp;select1Id=1" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGQ3YKo6/uiOnj4e1hCUvPgIJvv/1A==" /> </div>    <div>        </div>    </form> </body> </html>"就是你那个处理页面上的东西 删掉就好了
      

  7.   

    Response.End() 爱死你了
    分全给你了再给你追点分 
    哈哈 但是为啥不写 response.end() 
    就把后面正整个HTML也传过去了呢
      

  8.   

    还有我现在是传的responsetext 要弄成字符串 麻烦啊
    responsexml怎么弄啊
    在Ajax处理页怎么把一个datatable 用XML方式 response.write出去啊
    还有在 接受页怎么用啊
      

  9.   

    呼叫 hubblebubblepig 同学 在吗?
      

  10.   

    你要不写Response.End那你把ajax的asp.net页面改成只有一句
    aa.aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="aa.aspx.cs" Inherits="aa" %>
    其它的全删除也行
      

  11.   

     var xmlDoc=xmlHttp.responseXML.documentElement;var node=xmlDoc.getElementsByTagName("XML文档结点名称");
    if(node!=null&&node[0]!=null&&node[0].firstChild!=null){var value=node[0].firstChild.data;
    }
      

  12.   

    要么就end 要么就把那些不用的html都删光 都可以 你看下end方法的解释就知道了 我习惯上两个都弄 看着干净
      

  13.   


    可以把datatable放在一个dataset中然后用getxml方法直接输出xml格式的字符串 再respone.write出去收发的两头要一致 如果write的是简单的字符串形式(就是没啥特殊处理直接write的) 那接收的时候要把responseText加载成xml再进行读取 如果write的同时指定了ContentType(mime类型) 那么直接就可以用responseXML来进行处理了 参14楼 之后都是节点操作
      

  14.   

    印象中好像responseText是string而responseXML是object 对于string当然不存在什么节点 所以要加载成xml再处理ContentType指定成xml 即"text/xml" 
    至于js端字符串加载成xml自己再查查或者问问别人吧