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