1

这是一个带有 Javascript 的 ASPX/CS 程序。

我继承了这段代码,我正在尝试完成未完成的验证。我发现单击了验证单选按钮的 javascript 代码,但 aspx 代码没有引用它。

单选按钮被组合在一起,这样当组中的一个被选中时,其他的未被选中。但是,对于初学者来说,我看不到如何利用它。它必须与每个单选按钮提到的“GroupName”有关。

<ItemTemplate>
     <%# FormatGroup(Eval("Group").ToString()) %>
          <tr>
               <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:Label ID="lblQuestion" runat="server" Text='<%# Eval("Question") %>'><%# Eval("Question") %></asp:Label></td>
               <td align="center" width="10%"><asp:RadioButton ID="rblEvalQuestion4" runat="server" GroupName='<%# Eval("Question") %>' /></td>
               <td align="center" width="10%"><asp:RadioButton ID="rblEvalQuestion3" runat="server" GroupName='<%# Eval("Question") %>' /></td>
               <td align="center" width="10%"><asp:RadioButton ID="rblEvalQuestion2" runat="server" GroupName='<%# Eval("Question") %>' /></td>
               <td align="center" width="10%"><asp:RadioButton ID="rblEvalQuestion1" runat="server" GroupName='<%# Eval("Question") %>' /></td>
          </tr>
</ItemTemplate>

那么我将如何在 asp 中将 ClientValidationFunction 方法用于单选按钮组?

4

1 回答 1

3

尝试自定义字段验证器。

添加这段 JavaScript:

<script language="javascript" type="text/javascript" >
function ClientValidate(source,args)
{   
    if(document.getElementById("<%= rblEvalQuestion1.ClientID %>").checked || document.getElementById("<%= rblEvalQuestion2.ClientID %>").checked || document.getElementById("<%= rblEvalQuestion3.ClientID %>").checked || document.getElementById("<%= rblEvalQuestion4.ClientID %>").checked)
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }

}
</script>

将此验证器添加到页面:

<asp:CustomValidator id="RadioButtonValidator" runat="server" Display="Dynamic" ErrorMessage="Please select an option." ClientValidationFunction="ClientValidate" OnServerValidate="ServerValidate"></asp:CustomValidator>

而这个方法在后面的代码中:

protected void ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = rblEvalQuestion1.Checked || rblEvalQuestion2.Checked || rblEvalQuestion3.Checked || rblEvalQuestion4.Checked;
}

最后,请务必检查是否

Page.IsValid 

在您提交表单的按钮中。

最后,如果您可以将其重新分解为 RadioButtonList,您可以简单地使用 RequiredFieldValidator,这将使您的生活更容易实现!

于 2013-04-16T02:24:59.033 回答