1

我已经在这里查看了十几个以前的答案,但对我没有任何帮助。我需要一个必须选中复选框才能提交的表单。我正在使用 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 选项。如果您知道验证它们的更好方法,我也可以使用 CheckboxList 。

4

4 回答 4

0

这是解决方案:

后面的代码:

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)
    {

    }
}

页面:

<%@ 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>
于 2013-04-25T14:20:49.913 回答
0

Submit_Click函数中,您可以添加检查是否AliveChkBox.Checkedtrue. 如果是false,您可以显示 aMessageBox或类似的东西来通知用户它需要检查,然后简单地returnSubmit_Click这样就不会发生任何事情,直到它被检查。

于 2013-04-25T14:08:37.010 回答
0

if (checkBox1.Checked == true) button1.Enabled = true;

使用与此类似的代码,只需将其设置为未在属性上启用 button1

于 2013-04-25T14:34:30.523 回答
0

你想用

if (checkbox1.Checked) 
btn1.enabled

else (checkbox1.disabled)
btn1.disabled
this.errorProvider1.SetError(checkbox1, "Must be checked to continue"); 
于 2013-04-25T14:14:11.513 回答