日期:2014-05-17  浏览次数:20496 次

关于HTML控件作为服务器控件后ID会变化
麻烦大家动动手
我用js写了一段脚本用来获取asp.net的控件
function getAnchor(){
    alert(document.getElementById("test").text);
}
然后HTML控件的代码是这样的
<input type="button" runat="server" id="test" value="test"/>
但是获取不到他的值
而且在页面右键显示源文件的时候
里面HTML控件作为服务器控件的ID全部被重新命名, name 属性的值也变化
请大家帮帮忙
关键时刻
另外预祝各位同学新春快乐
谢谢大家乐
------解决方案--------------------
document.getElementById("<%= test.ClientID %>").text
------解决方案--------------------
是放在控件内的吧? 比如gridview,repeat里 1楼可行
如果是后台控制就用e.item.findcontrol(id);
------解决方案--------------------
alert(document.getElementById("test").value);
------解决方案--------------------
删除runat="server"
或function getAnchor(){
  alert(document.getElementById("<%=test.ClientID%>").text);
}
<input type="button" runat="server" id="test" value="test"/>
HtmlInputText
------解决方案--------------------
ClientID  就获取你生成的空间的 id了
------解决方案--------------------
通过获取ID号,来传递信息,这样就可以了吧

------解决方案--------------------
function getAnchor() {
            alert(document.getElementById("test").value);
    
        }
其实当你不知道id是多少的时候,直接看源文件,把id名改为源文件中的id名就OK了

------解决方案--------------------
document.getElementById("<%= test.ClientID %>").text
------解决方案--------------------
改成:
function getAnchor(){
  alert(document.getElementById("<%=test.ClientID%>").value);
}

------解决方案--------------------
如果你是写在用户控件里面的话,就会被重新命名,加了$符号之类的,一般是父控件的名$子控件名 ,你改成
alert(document.getElementById("源文件里面的ID").value);就OK了
------解决方案--------------------
asp.net4和asp.net mvc里面就不会变化了
------解决方案--------------------
引用:
asp.net4和asp.net mvc里面就不会变化了


学习了。。

document.getElementById("test").value
这个可行、试过了


document.getElementById("<%= test.ClientID %>").text
这个没弄出来。。。。同样是未定义错误
搞不明白