2
 <asp:RadioButtonList ID="rbl" runat="server" onMouseUp="Myf()">
    <asp:ListItem Text="Yes" Value="1"></asp:ListItem>
    <asp:ListItem Text="No" Value="0"></asp:ListItem>        
    </asp:RadioButtonList>




function Myf() {
            var list = document.getElementById("<%=rbl.ClientID %>"); 
           var inputs = list.getElementsByTagName("input");
            var selected;
            for (var i = 0; i < inputs.length; i++) {
                alert(inputs[i].innerHTML);

            }        

        }

我得到了 Radiobuttonlist 的值。如何获取单选按钮列表的文本?

4

5 回答 5

6

首先,单选按钮在您的代码中没有文本

其次,如果您查看生成的 html 页面的源代码,您可以看到单选按钮具有存储文本的标签。所以你可以在你的函数中寻找label而不是input它会得到文本

    function Myf() {
        var list = document.getElementById("<%=rbl.ClientID %>");
        var inputs = list.getElementsByTagName("label");
        var selected;
        for (var i = 0; i < inputs.length; i++) {
            alert(inputs[i].innerHTML);

        }
    }
于 2013-06-28T12:14:09.147 回答
1

使用 getAttribute() 方法。

element.getAttribute("Text");

更多信息:https ://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute?redirectlocale=en-US&redirectslug=DOM%2Felement.getAttribute

于 2013-06-28T12:12:23.903 回答
1

要获取文本,您必须在 getelement 中放置“标签”而不是“输入”。

试试这样:

    var inputs = list.getElementsByTagName("label");
于 2013-06-28T13:23:50.497 回答
0
<asp:RadioButtonList ID="rbl" runat="server">
    <asp:ListItem Text="Yes" Value="1"></asp:ListItem>
    <asp:ListItem Text="No" Value="0"></asp:ListItem>        
    </asp:RadioButtonList>

$(document).ready(function () {
    $('[id*="rdl"],[type="radio"]').change(function () {
        if ($(this).is(':checked'))
            console.log($(this).next('label').html());
    });
});
于 2013-06-28T12:21:05.497 回答
0

尝试这个

    function Myf() {
        $("#<%=rbl.ClientID %>").find('input').each(function () {
            var this_input = $(this);
            alert($("#<%=rbl.ClientID %>").find('label[for="' + this_input.attr('id') + '"]').text());
        })

    }
于 2013-06-28T12:35:14.587 回答