使用Jquery按类查找asp.net单选按钮控件的选定值

使用Jquery按类查找asp.net单选按钮控件的选定值,jquery,html,asp.net,Jquery,Html,Asp.net,我目前使用的单选按钮控件定义为: <asp:RadioButtonList ID="rbQ2" CellSpacing="10" runat="server" class="rbQ2" CssClass="radioButtonList" RepeatDirection="Horizontal" RepeatLayout="Table" onclick="javascript: SetQ2DetailVisibility();"> <asp:ListItem>Ye

我目前使用的单选按钮控件定义为:

<asp:RadioButtonList ID="rbQ2" CellSpacing="10" runat="server" class="rbQ2"
CssClass="radioButtonList" RepeatDirection="Horizontal" RepeatLayout="Table"
onclick="javascript: SetQ2DetailVisibility();">
    <asp:ListItem>Yes</asp:ListItem>
    <asp:ListItem>No</asp:ListItem>
</asp:RadioButtonList>

为什么会发生这种情况?

您尚未为列表项指定值。您正在尝试比较文本

试试这个:

function SetQ2DetailVisibility() {
    var value = $("#<%=rbQ2.ClientID%>").find(":checked").text();
    if (value === "Yes") {
        ShowQuestionDetail("#q2detail");
    }
    else {
        HideQuestionDetail("#q2detail");
    }
}
函数SetQ2DetailVisibility(){
var值=$(“#”)查找(“:选中”).text();
如果(值=“是”){
ShowQuestionDetail(“详细信息”);
}
否则{
HideQuestionDetail(“详细信息”);
}
}

webforms对RadioButton的实现实际上在单选按钮旁边创建了一个跨度,即文本放置的位置。因此,您需要获取下一个同级跨度并将值拉到那里

如果将值作为值属性添加到listitems,则可以继续使用代码:

<asp:ListItem Value="Yes">Yes</asp:ListItem>
Value
是提交给服务器的值,
Text
是显示给用户的值

function SetQ2DetailVisibility() {
    var value = $("#<%=rbQ2.ClientID%>").find(":checked").text();
    if (value === "Yes") {
        ShowQuestionDetail("#q2detail");
    }
    else {
        HideQuestionDetail("#q2detail");
    }
}
<asp:ListItem Value="Yes">Yes</asp:ListItem>
<asp:ListItem Value="Yes" Text="Yes" />