js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)

js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)

js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)

欢迎访问原稿:http://hi.baidu.com/2wixiao/blog/item/68c9acd40ac9612006088b6f.html

在做 BS架构的项目时,经常遇到 需要用js 来调用 asp.net 服务器端控件的值。

大多数的 控件他的值都可以通过js调用它的 value属性来获得此控件的值,但是也有例外的情况:如 Label控件,他的值用js就不能通过value属性来获得。

1.Label控件 js获取的实例:

var text= document.getElementById(("<%=this.Label1.ClientID%>").innerText;

假如这样: var text= document.getElementById(("<%=this.Label1.ClientID%>").value; 则 text 为Undefined。

2.TextBox 的值----就可以

var text= document.getElementById("<%=this.TextBox1.ClientID%>").value ;

解释:因为服务器控件render到客户端的时候如果有panel或者masterpage那么ID是会变的,应该用document.getElementByID('<%=Textbox1.ClientID%>');这样无论怎样都能获取到textbox。label了

对于,RadioButtonList 与 DropDownList 他们的获取方式是大不一样的! 这主要是因为 他们所生成的 html元素不一样。

3.DropDownList 的值获取:

var ddlvalue = document.getElementById('ctl00_Contentplaceholder3_ddlFolws').value;
       

4.RadioButtonList 的值获取 就比较麻烦

        var value = "";

        var Result = document.getElementsByName('ctl00$Contentplaceholder3$rblResult');
        for (var i = 0; i < Result.length; i++) {
            if (Result.item(i).checked) {
                value = Result.item(i).value;
            }
        }

如果 RadioButtonList 控件 没有一个选择的 那么 value的值 为空!