您的位置:首页 > Web前端 > JavaScript

javascript访问加runat="server" 的Html控件的方法

2009-07-11 18:00 567 查看
这两天做系统的时候,遇到个问题头疼的要命.我在制作用户控件的时候,
为了让html控件能够在后台访问,我把Html控件加上了runat="server"属性,这样做后台是可以访问了,但是前台Javascript访问的时候,老是提示找不到对象。
我在想是不是这个控件放在UpdatePanel中,还需要加东西。网上也有很多的人说在框架中需要进行类似windows.frames("framename").document.getElementbyId("ControlId")什么的,我就试了试,完全没用 。
后来我查看运行后的脚本时发现在原本我要找的txtSuppler文本框的Id竟然变成了"Wuc_YPRuku1_txtSupplyer",前面加的是我写的控件的名称。
经查资料知道,asp.net为了使用户控件里面的子元素id不至于和其他用户控件的或者页面的子元素id冲突自动把各自的子元素id都加上了用户控件的标识!!
知道这个后,我用document.getElementbyId("Wuc_YPRuku1_txtSupplyer")就可以找到了。
但这样就不具有普遍性了,继续又查资料 ,找到一个好的解决方法:

用ClientID来获取对象,把代码修改为:
var txt= "<%=txtSupplyer.ClientID%>";
var v = document.getElementById(txt).value;

问题解决了。
这里将问题的解决方法提供在这里,以后遇到就可以解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐