错误: 'document.getElementById(...)' 为空或不是对象

星星法师 2010-09-25 08:51:32
前台是嵌入在模板页里面的,
前台代码:

<%@ Page Language="C#" MasterPageFile="~/Web/main.Master" AutoEventWireup="true"
CodeBehind="CshReg.aspx.cs" Inherits="SalesHelper.Web.CshReg" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">


//主要的按钮,进入后根据confirm返回值判断,用JS调用另外两个隐藏的按钮的函数
<div id="button">
<asp:Button ID="Button1" runat="server" Text="确定注册" OnClick="Button1_Click" />
</div>
</div>
<div>


//用来存放两个函数的隐藏按钮
<asp:Button id="Button2" runat="server" Text="Button2" OnClick="Button2_Click" Style="display: none;" />
<asp:Button id="Button3" runat="server" Text="Button3" OnClick="Button3_Click" Style="display: none;" />
</div>


//判断函数
<script language="javascript" type="text/javascript">
function test() {
var b = confirm("y/n");
alert("11111");
if (b)
document.getElementById('Button2').click();
else
document.getElementById('Button3').click();
return false;
}
</script>
</asp:Content>



后台代码:

protected void Button1_Click(object sender, EventArgs e)
{
int a=5+4;
if(a>0)
{
Page.ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script language='javascript' type='text/javascript'>test();</script>");
return;
}

protected void Button2_Click(object sender, EventArgs e)
{
int b=9;
}
protected void Button3_Click(object sender, EventArgs e)
{
Server.Transfer("CshClntReg.aspx");
}





但是调试的时候总是显示 错误: 'document.getElementById(...)' 为空或不是对象.网上查过说是代码加载顺序的问题,无解中。。。如果要实现我的这种效果,应该怎么修改呢?
...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
星星法师 2010-09-25
  • 打赏
  • 举报
回复
2346楼正解啊,多谢了!几天的问题终于花了200分解决了,高兴呵。
就当新手散分啦!

kathylxb 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
document.getElementById("<%=Button2.ClientID%>")
[/Quote]
正解
liyinlan2010 2010-09-25
  • 打赏
  • 举报
回复
先把你多余的</div>标记去掉后,再用源文件里的Button ID 找Button对象
路人乙e 2010-09-25
  • 打赏
  • 举报
回复
你的button包含在master中,生成html的时候id已经发生改变
使用#2楼代码
claymore1114 2010-09-25
  • 打赏
  • 举报
回复
在打开的网页里查看源文件,用源文件里面的id,
wuyq11 2010-09-25
  • 打赏
  • 举报
回复
document.getElementById("<%=Button2.ClientID%>")
倒霉熊 2010-09-25
  • 打赏
  • 举报
回复
<input type="button" id="button1" runat="server" value="确定注册">


试一下把HTML标记中添加上runat="server"

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧