Custom validator with Javascript : CustomValidator « Validation « ASP.NET Tutorial

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="" >
<head runat="server">
    <title>Using a CustomValidator</title>
    <form id="form1" runat="server">
    Enter a date:<br />
    <asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
    <asp:CustomValidator ID="custDate" runat="server" 
       Text="Enter a valid future date" 
       OnServerValidate="custDate_ServerValidate" />   

   <script type="text/javascript">
     function validateOrFields(source, args){
       var sUser = document.form1.<%= txtUser.ClientID %>.value;
       var sEmail = document.form1.<%= txtEmail.ClientID %>.value;
       if (sUser == "" && sEmail == "")
          args.IsValid = false;
          args.IsValid = true;
   Enter user name:<br />
   <asp:TextBox ID="txtUser" runat="server"></asp:TextBox>
   <br />
   Enter email:<br />
   <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>

   <asp:CustomValidator ID="OrFieldValidator" 
                        Text="Enter either a user name or a email" 
                        OnServerValidate="OrFieldValidator_ServerValidate" />   

   <asp:Button ID="btnSubmit" Text="Click this to test validation" runat="server" />
<script type="text/javascript">
  ValidatorHookupControlID("<%= txtUser.ClientID %>",document.getElementById("<%= OrFieldValidator.ClientID %>"));
  ValidatorHookupControlID("<%= txtEmail.ClientID %>",document.getElementById("<%= OrFieldValidator.ClientID %>"));

File: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class UsingCustomValidator : System.Web.UI.Page
   protected void custDate_ServerValidate(object source, ServerValidateEventArgs args)
      string sEnteredDate = args.Value;
      DateTime dt;
      bool convertSuccessful = DateTime.TryParse(sEnteredDate, out dt);
      if (convertSuccessful && dt >= DateTime.Today)
         args.IsValid = true;
         args.IsValid = false;

   protected void OrFieldValidator_ServerValidate(object source, ServerValidateEventArgs args)
      if (txtUser.Text.Length <= 0 && txtEmail.Text.Length <= 0)
         args.IsValid = false;
         args.IsValid = true;

8.3.1.You can associate a custom validation function with the CustomValidator control.
8.3.2.Validate a blank field
8.3.3.Performing validation against no particular field.
8.3.4.Use both client side and server side script to validate (
8.3.5.Create user control based on CustomValidator
8.3.6.Using the CustomValidator control to perform client-side validations
8.3.7.Using the CustomValidator control to perform server-side validations (C#)
8.3.8.Using the CustomValidator control to perform server-side validations (VB)
8.3.9.Custom validator with Javascript
8.3.10.CustomValidator for login page
8.3.11.CustomValidator for login page (VB)