C# 验证复选框

C# 验证复选框,c#,checkbox,validation,C#,Checkbox,Validation,我已经看了十几个以前的答案,没有什么对我有效。我需要一个表格,其中必须选中复选框才能提交。我使用的是C#,而且我对它还很陌生,我刚刚发现与文本框一起工作的RequiredFieldValidator无法与复选框一起工作,所以我需要另一种方法来实现这一点 提交时,字段中的数据被发送到MS SQL数据库。我有更多的领域,然后一个显示在下面,但我想我会压缩它为这篇文章,并删除一切,但一个文本框和复选框,我需要验证后提交 我希望它在提交时这样做: <form id="form1" runat="s

我已经看了十几个以前的答案,没有什么对我有效。我需要一个表格,其中必须选中复选框才能提交。我使用的是C#,而且我对它还很陌生,我刚刚发现与文本框一起工作的RequiredFieldValidator无法与复选框一起工作,所以我需要另一种方法来实现这一点

提交时,字段中的数据被发送到MS SQL数据库。我有更多的领域,然后一个显示在下面,但我想我会压缩它为这篇文章,并删除一切,但一个文本框和复选框,我需要验证后提交

我希望它在提交时这样做:

<form id="form1" runat="server">
    <asp:Label ID="NameLbl" runat="server" Text="Label"></asp:Label><asp:RequiredFieldValidator
        ID="NameRFV" runat="server" ErrorMessage="NameTxtBox"></asp:RequiredFieldValidator>
    <asp:TextBox ID="NameTxtBox" runat="server"></asp:TextBox>
    <br />
    <asp:Label ID="AliveLbl" runat="server" Text="Are you alive?"></asp:Label>
    <asp:CheckBox ID="AliveChkBox" runat="server" />
    <asp:Button ID="Submit" class="btn btn-primary" runat="server" Text="Submit"  OnClick="Submit_Click" />
</form>



我已经读过有关使用CustomValidator的内容,但我无法让它正常工作。人们一直说你需要编译/构建你的代码来让它工作,我只是不知道怎么做


也将考虑JavaScript选项。如果您知道更好的验证方法,我也可以使用复选框列表

Submit\u单击
功能中,您可以添加一个检查
alivechbox.Checked
是否为
true
。如果它是
false
,您可以显示一个
消息框或类似的东西来通知用户需要检查它,然后只需从
Submit\u单击
返回
,这样在检查之前不会发生任何事情。

您想使用它吗

if (checkbox1.Checked) 
btn1.enabled

else (checkbox1.disabled)
btn1.disabled
this.errorProvider1.SetError(checkbox1, "Must be checked to continue"); 
以下是解决方案:

代码隐藏:

using System;

public partial class TestCheckBox : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "AliveScript", "<script>function CheckAlive(){ return document.getElementById('" + this.AliveChkBox.ClientID + "').checked; } </script>");

        this.Submit.OnClientClick = "return CheckAlive();";
    }
    protected void Submit_Click(object sender, EventArgs e)
    {

    }
}
使用系统;
公共部分类测试复选框:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(),“AliveScript”,“函数CheckAlive(){return document.getElementById('“+this.alivechBox.ClientID+”).checked;});
this.Submit.OnClientClick=“return CheckAlive();”;
}
受保护的无效提交\u单击(对象发送者,事件参数e)
{
}
}
aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestCheckBox.aspx.cs" Inherits="TestCheckBox" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label ID="NameLbl" runat="server" Text="Label"></asp:Label>
        <asp:RequiredFieldValidator ID="NameRFV" runat="server" ErrorMessage="NameTxtBox" ControlToValidate="NameTxtBox"></asp:RequiredFieldValidator>
        <asp:TextBox ID="NameTxtBox" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="AliveLbl" runat="server" Text="Are you alive?"></asp:Label>
        <asp:CheckBox ID="AliveChkBox" runat="server" />
        <asp:Button ID="Submit" class="btn btn-primary" runat="server" Text="Submit" OnClick="Submit_Click" />
    </form>
</body>
</html>


如果(checkBox1.Checked==true) 按钮1.启用=真


使用与此类似的代码,只需将其设置为属性上未启用按钮1即可

为什么不启用
if(AliveChkBox.Checked(){…
@Liam尝试了一个已经不起作用的方法,正如我在我的OP中所述。感谢您没有阅读。我喜欢这个方法,但如何让它显示红色的“必需”呢复选框旁边的错误消息?经过编辑以显示抛出错误提供程序的方法,您也可以在设计模式下创建。它可以更简单,无需注册脚本。this.Submit.OnClientClick=“return document.getElementById(““+”this.alivechbox.ClientID+”)。选中;“谢谢您,我现在正在尝试!