asp.net中前台javascript调用后台的按钮事件。。。。急啊,毕业设计~!~~

我要的效果其实是让前台的标签有点击事件,可以写后台代码!
前台代码
<script src="JScript.js" type="text/javascript"></script>
</head>
<body style="height: 598px">
<form id="form1" runat="server">
<div id="11" onclick="qs()" style="height: 226px; width: 222px">
123456
</div>
<asp:Button ID="Button1" runat="server" Height="29px" onclick="Button1_Click"
Text="Button" />
</form>
</body>
</html>

通过div的点击调用javascript函数
function qs() {
document.getElementById("Button1").click();

}

用javascript函数触发后台服务器控件Button1的事件,没有报错,但是当我把button1的visible设为false后,就变成了这样:

哪位大虾救救我吧,调一天啦,坑死我啦~~~~~~

第1个回答  2012-10-26
你好!
把 document.getElementById("Button1").click();
改为 document.getElementById(‘<%=button1.ClientID%>’).click();
试试,可能是你把button1设置为visible后,button1的ID会变的,你直接获取它的服务器ID就可以了.
第2个回答  2012-10-27
其实我觉得你实际上想实现的是点击div然后调用一段后台的代码(这段代码可能现在是放在你的Button1_Click里面的),其实这个只需要用_dopostback就可以了,没有必要去触发一个点击事件。

首先,上面的朋友说的没错.button1的属性visible设置成false之后,客户端是找不到这个控件的。
其次,我想不通你说的没有设置visible之前“没有报错”.这里绑定客户端的事件,肯定是要像楼上的同学说的 用CliendID去取客户端ID的,怎么可能不报错。追问

确实没有报错,

不隐藏button的话可以成功的取到ID,但是隐藏掉之后就报无对象

追答

当控件的display这个style设置为none时,
通过id时娶不到控件对象的

本回答被提问者采纳
第3个回答  2012-10-26
button1的visible设为false后,在客户端就没有Button1的控件了(服务端有),js肯定找不到相应的ID了。可以将button1的 display:none;
还有要将 document.getElementById("Button1").click();改为
document.getElementById(‘<%=button1.ClientID%>’).click();
如果button1在panel中的话,button在客户端的ID就会变化。追问

如果改为document.getElementById(‘’).click();的话,不隐藏按钮也会报错的
服务器端的button1没有style,设不了,不过我可以建一个隐藏的DIV,把按钮放一面,总之谢谢了

第4个回答  2012-10-26
兄弟,你写错了。给你个JWUERY版的:$(function(){ $("#Button1").bind("click",function(){ alert("abcd"); }) })。去测试下有没有绑上
相似回答