问题描述
请教一下,我用JS在前台页面上生一张表单,放在一个ID为childtb的表格里,如果我在前台页面上放置一个按钮,通过手动点击来获取childtb可以成功获取到里面的对象,但如果我是通过CS文件里注册JS,来触发前台这个按钮的点击事件,就获取不到childtb里面的东西,提示undefined,找不到对象,大家谁知道是什么原因.注册JS的代码:ClientScript.RegisterStartupScript(this.GetType(),"write_js_31","<script>document.getElementsByID('saveflow').onclick();</script>");saveflow为前台按钮ID
解决方案
解决方案二:
去掉script标记看看ClientScript.RegisterStartupScript(this.GetType(),"write_js_31","document.getElementsByID('saveflow').onclick();");
解决方案三:
去掉了还是没用啊,获取不到对象。
解决方案四:
document.getElementsByID('<%=saveflow.ClienID%>').onclick();
解决方案五:
1.检查页面源代码看看是否有id为:'saveflow'的按钮2.javascript为解释型语言。查看<script>document.getElementsByID('saveflow').onclick();</script>这句脚本在页面的头部执行还是尾部执行。若为头部执行,则有可能报无法找到对象,因为执行脚本是还没有'saveflow'按钮。解决方法为:换个方法,将这段脚本注册到尾部
解决方案六:
我的注册脚本是放在最后面的,而且能正确触发saveflow的onclick事件,就是不能找到childtb里面的对象,如果是手动点击按钮的话就没问题。怪就怪在这边。
解决方案七:
如果楼主使用的saveflow这个按钮是runat="server"的改用document.getElementById('<%=saveflow.ClientID%>')
解决方案八:
<asp:ButtonID="saveflow"runat="server"Text="1111"OnClientClick="returninsert();"/>functioninsert(){vartb=document.getElementById("childtb").value;alert(tb);...}这是前台的按钮和按钮说要触发的事件,如果是手动点击按钮的话弹出的提示是[object],能找到对象,程序可以继续往下走,当如果是在后台注册的话就不行,弹出的提示是:undefined;能弹出提示说明都已经能正确触发事件了,当就是找不到childtb里的对象。郁闷
解决方案九:
document.getElementsByID('saveflow').onclick();改写:document.getElementById('saveflow").onclick=方法名;试一下
解决方案十:
还是不行
解决方案十一:
问题不在于能不能触发按钮的事件,而在于两种触发按钮事件的方式得到的东西不一样,一个能找到对象,一个找不到对象。很是奇怪!