Visual Studio Web 表单未验证
本文关键字:验证 表单 Web Studio Visual | 更新日期: 2023-09-27 18:32:42
这是我的Web表单。 名字是必需的,但是当我运行程序并将"名字"字段留空时,我仍然会看到感谢我填写调查的页面。 它应该告诉我名字是必需的。
<%@ 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'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 + "!";
}
}
}
如果你想要客户端验证(JavaScript),请将EnableClientScript设置为true:
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBoxFirstName" EnableClientScript="true"></asp:RequiredFieldValidator>
如果要在服务器上进行验证,请在代码隐藏中使用 Page.IsValid proprty:
if(Page.IsValid)
{
...
}
还可以使用 ValidationSummary (<asp:ValidationSummary> 标记)来验证控件组
只需将 validationGroup 属性添加到 requiredfieldvalidator 和回发数据的按钮。 它将防止文本框上的空白值。
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBoxFirstName" ValidationGroup="v"></asp:RequiredFieldValidator>
..... // other code
<asp:Button ID="Button" runat="server" Text="Submit" OnClick="Button_Click" ValidationGroup="v" />
愿这对你有用:D
这是我如何使用 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>