3

我有一个单选按钮列表。

          <asp:RadioButtonList ID="RadioButtonList1" runat="server" 
              RepeatDirection="Horizontal" RepeatLayout="flow" >
             <asp:ListItem Selected="True" Text ="Yes" Value="0"></asp:ListItem>
             <asp:ListItem  Text ="No" Value="1"></asp:ListItem>
          </asp:RadioButtonList>

为了从收音机列表中获取值,我有一个函数:

 function getvalueofradiolist() {

        var radiolist = document.getElementById('<%= RadioButtonList1.ClientID %>');
        var rblName = radiolist.name;
        var radio = document.getElementsByName(rblName);

        for (var x = 0; x < radio.length; x++) {
            if (radio[x].checked) {
                alert("Selected item Value " + radio[x].value);
            }
        }
    }

但它返回未定义。

我是不是写错了什么?

我在单击按钮时调用此函数。

建议我是否可以在使用 Javascript 的情况下借助背后的代码来做到这一点。

4

4 回答 4

13
<form runat="server">
<asp:RadioButtonList ID="RadioButtonList1" runat="server" 
          RepeatDirection="Horizontal" RepeatLayout="flow" >
         <asp:ListItem Selected="True" Text ="Yes" Value="0"></asp:ListItem>
         <asp:ListItem  Text ="No" Value="1"></asp:ListItem>
      </asp:RadioButtonList>    </form>
<p id="button" onclick="getvalue()">click me</p>

<script type="text/javascript">
function getvalue(){
 alert($('#<%=RadioButtonList1.ClientID %> input[type=radio]:checked').val());
}
</script>
于 2012-09-26T06:18:39.867 回答
1

关于代码

var rblName = radiolist.name;

你甚至没有 name 属性

于 2012-09-26T06:44:28.357 回答
0

你可以试试:

function getvalueofradiolist() {

            var radioButtonlist = document.getElementsByName("<%=RadioButtonList1.ClientID%>");
            for (var x = 0; x < radioButtonlist.length; x++) {
                if (radioButtonlist[x].checked) {
                    alert("Selected item Value "  + radioButtonlist[x].value);
                }
}
于 2012-09-26T06:06:06.747 回答
0

关于input直接获取元素的内容:

function getvalueofradiolist() {
    var radiolist = document.getElementById('<%= RadioButtonList1.ClientID %>');
    var radio = radiolist.getElementsByTagName("input");

    for (var x = 0; x < radio.length; x++) {
        if (radio[x].type === "radio" && radio[x].checked) {
            alert("Selected item Value " + radio[x].value);
        }
    }
}
于 2012-09-26T06:40:40.317 回答