jQuery没有正确验证RadioButtonList?

时间:2016-06-28 02:32:23

标签: javascript jquery asp.net validation

我想使用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)进行验证,但它也无法按预期工作。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我在互联网上找到了这些例子。

<script type = "text/javascript">
function Validate()
{
   var RB1 = document.getElementById("<%=RadioButtonList1.ClientID%>");
   var radio = RB1.getElementsByTagName("input");
   var isChecked=false;
   for (var i=0;i<radio.length;i++)
   {
       if (radio[i].checked)
       {
           isChecked=true;
           break;
       }
   }
   if(!isChecked)
   {
        alert("Please select an item");
   }
   return isChecked;
}
</script>

有关validate-aspnet-radiobuttonlistASP.Net-RadioButtonList-Control.aspx

的更多参考资料