0

これが私の Web フォームです。名は必須ですが、プログラムを実行して FirstName フィールドを空白のままにしても、調査への回答に感謝するページが表示されます。名が必要であることがわかります。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Cheese.aspx.cs" Inherits="WebApplication1.Cheese" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>

    <form id="form2" runat="server">
    <div style="width: 37px">
        <asp:Panel ID="PanelNameForm" runat="server" Width="502px">
            <asp:Label ID="LabelFirstName" runat="server" Text="First Name"></asp:Label>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBoxFirstName"></asp:RequiredFieldValidator>
            <asp:TextBox ID="TextBoxFirstName" runat="server"></asp:TextBox>
            <asp:Label ID="LabelLastName" runat="server" Text="Last Name"></asp:Label>
            <asp:TextBox ID="TextBoxLastName" runat="server"></asp:TextBox> <br />
            <asp:Label ID="LabelAddr1" runat="server" Text="Address"></asp:Label>
            <asp:TextBox ID="TextBoxAddr1" runat="server"></asp:TextBox>
            <asp:Label ID="LabelAddr2" runat="server" Text="Address"></asp:Label>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <br />
            City<asp:TextBox ID="TextBoxAddr2" runat="server"></asp:TextBox>
            State<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            Zip<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <br />
            Phone Number<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
            email<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
            Age<asp:DropDownList ID="DropDownList2" runat="server">
                <asp:ListItem Value="1">0-17</asp:ListItem>
                <asp:ListItem Value="2">18-21</asp:ListItem>
                <asp:ListItem Value="3">22-25</asp:ListItem>
                <asp:ListItem Value="4">26-35</asp:ListItem>
                <asp:ListItem Value="5">36+</asp:ListItem>
            </asp:DropDownList>
            <asp:Panel ID="Panel1" runat="server" Width="407px">
                Gender<asp:RadioButtonList ID="RadioButtonList1" runat="server">
                    <asp:ListItem Value="Male">Male</asp:ListItem>
                    <asp:ListItem Value="Female">Female</asp:ListItem>
                </asp:RadioButtonList>
                Favorite Cheese<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
                <br />
                How often do you eat cheese? (Check one)<asp:CheckBoxList ID="CheckBoxList1" runat="server">
                    <asp:ListItem>Every Day</asp:ListItem>
                    <asp:ListItem>Every Other Day</asp:ListItem>
                    <asp:ListItem>Once A Week</asp:ListItem>
                    <asp:ListItem>I Don&#39;t Like Cheese</asp:ListItem>
                </asp:CheckBoxList>
                Cheese Texture Preferences (Check All That Apply)<asp:CheckBoxList ID="CheckBoxList2" runat="server">
                    <asp:ListItem Value="1">Hard</asp:ListItem>
                    <asp:ListItem Value="2">Semi-hard</asp:ListItem>
                    <asp:ListItem Value="3">Semi-soft</asp:ListItem>
                    <asp:ListItem Value="4">Soft</asp:ListItem>
                    <asp:ListItem Value="5">Crumbly</asp:ListItem>
                </asp:CheckBoxList>
                Milk Type Preferences (Check All That Apply)<asp:CheckBoxList ID="CheckBoxList3" runat="server">
                    <asp:ListItem>Buffalo</asp:ListItem>
                    <asp:ListItem>Cow</asp:ListItem>
                    <asp:ListItem>Goat</asp:ListItem>
                    <asp:ListItem>Vegetarian</asp:ListItem>
                </asp:CheckBoxList>
                     <asp:Button ID="Button" runat="server" Text="Submit" OnClick="Button_Click" />
                </asp:Panel>
        </asp:Panel>
        <asp:Panel ID="PanelThankYou" runat="server" Width="442px">
            Thank you for taking the survey, <asp:Label ID="LabelThankYouName" runat="server" Text=""></asp:Label>
        </asp:Panel>
    </div>
    </form>
</body>
</html>

送信ボタンのコードは次のとおりです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class Cheese : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!(Page.IsPostBack))
            {
                //first time page is loaded
                PanelThankYou.Visible = false;
            }
            else
            {

            }
        }

        protected void Button_Click(object sender, EventArgs e)
        {
            PanelNameForm.Visible = false;
            PanelThankYou.Visible = true;

            LabelThankYouName.Text = TextBoxFirstName.Text + " " + TextBoxLastName.Text + "!";
        }
    }
}
4

3 に答える 3

0

これは、HTML5(あなたが使用しているとあなたが言った)で必須フィールドの検証を行う方法の簡単なデモです。

デモ コード ビハインド ページ (.aspx.cs):

using System;
using System.Web.UI.WebControls;

public partial class PgValidationDemo : System.Web.UI.Page
{
    // bind page init
    // in the page constructor
    public PgValidationDemo()
    {
        this.Init += PgValidationDemo_Init;
    }

    // Bind our submit button click event
    private void PgValidationDemo_Init(object sender, EventArgs e)
    {
        cmdSubmit.Click += cmdSubmit_Click;
    }

    // handle the submit button
    // click event
    private void cmdSubmit_Click(object sender, EventArgs e)
    {
        // Tell the form to validate
        // fields in validation group
        // 'ValidationDemo'
        String vGroup = "ValidationDemo";
        vSummary.ValidationGroup = vGroup;
        Page.Validate(vGroup);

        // Call our fantastic convenience method
        // to check if a textbox has a value in it
        this.addRequiredFieldValidator(txtFirstName, vGroup, "FirstName is Required.");

        // If Page.IsValid
        // redirect to the 'thanks page'
        // if it isnt valid we don't need to
        // provide additional code because
        // the error messages will show in the
        // validation summary
        if (Page.IsValid)
        {
            //Redirect to Thanks for filling out survey
        }
    }

    // convenience method to add required
    // text validators to the form collection
    private void addRequiredFieldValidator(TextBox txt, String validationGroup, String errorMessage)
    {
        Page.Validators.Add(new CustomValidator()
        {
            IsValid = !String.IsNullOrWhiteSpace(txt.Text),
            ErrorMessage = errorMessage,
            ValidationGroup = validationGroup
        });
    }
}

デモ ページ (.aspx)

<%@ Page Language="C#" AutoEventWireup="false" CodeFile="default.aspx.cs" Inherits="PgValidationDemo" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Validation Demo</title>
</head>
<body>
    <form id="aspnetForm" runat="server">
    <asp:ValidationSummary runat="server" ID="vSummary" />

    <label>
        FirstName: 
        <asp:TextBox runat="server" ID="txtFirstName" required="required" />
        <!-- 
            required="required" is an html5 form attribute that prevents
            folks from submitting forms with blank values in textboxes.
            great stuff!
        -->
    </label>
    <div>
        <asp:Button runat="server" id="cmdSubmit" Text="Submit" />
    </div>
    </form>
</body>
</html>
于 2013-09-24T22:30:27.570 に答える