我想使用jQuery验证RadioButtonList以确保用户检查了其中一个值。如果用户未检查任何单选按钮,则会显示警报。但是,问题在于,即使用户已选中单选按钮之一,警报仍会提示。根据我在网上找到的内容,以下jQuery代码似乎是正确的。

这是我的RadioButtonList

<asp:RadioButtonList ID="rbClass" runat="server" CssClass="rbClass">
    <asp:ListItem Text="Asset Management Tool" Value="Asset Management Tool"></asp:ListItem>
    <asp:ListItem Text="Backup Tool" Value="Backup Tool"></asp:ListItem>
    <asp:ListItem Text="Communication Tool" Value="Communication Tool"></asp:ListItem>
    <asp:ListItem Text="Developer Tool" Value="Developer Tool"></asp:ListItem>
</asp:RadioButtonList>


这是我的jQuery:

if ($('#rbClass').is(':checked') == false) {
    event.preventDefault ? event.preventDefault() : (event.returnValue = false);
    alert("Please select the software's classification.");
}


如您所见,我尝试了几种其他方法来检查RadioButtonList是否已被检查。我也尝试过使用CssClass属性(.rbClass)进行验证,但也无法按预期工作。我想念什么吗?

最佳答案

您不能直接通过javascript访问ASP控件,因为这些控件将呈现为HTML,因此其ID将被更改并且将与父级相关。因此,您可以在此处使用其客户端ID,如下所示:

var selectedCount=$("#<%=rbClass.ClientID %> input:checked").length;
if(selectedCount==0)
{
    // Statements here nothing is checked
}

10-06 04:51