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

这两天做系统的时候,遇到个问题头疼的要命.我在制作用户控件的时候,
为了让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;


问题解决了。
这里将问题的解决方法提供在这里,以后遇到就可以解决了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值