* 여기서는 "ASP.NET의 유효성 검사 컨트롤"인 [FrmCustomValidator.aspx] 와 "HTML레벨"의 [FrmCustomValidator.htm]의 예제로 각각 비교해보았다.

 

 

==> [FrmCustomValidator.aspx] 소스 및 디자인

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmCustomValidator.aspx.cs"

    Inherits="FrmCustomValidator" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script>

        function ClientValidate(sender, args) {

            if (args.Value.length < 3 || args.Value.length > 12) {

                args.IsValid = false;

            }

            else {

                args.IsValid = true;

            }

        }

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        아이디 :

        <asp:TextBox ID="txtUserID" runat="server"></asp:TextBox><br />

        <asp:Button ID="btnOK" runat="server" Text="확인" />       

        <br />       

        <asp:CustomValidator ID="CustomValidator1" runat="server"

            ControlToValidate="txtUserID"

            ClientValidationFunction="ClientValidate"

            ErrorMessage="아이디는 3자이상 12자 이하"

            onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator>

    </div>

    </form>

</body>

</html>

 

 







-------------------------------------------------------------------------------------



 ==> [FrmCustomValidator.aspx.cs] 소스

 


using System;

using System.Web.UI.WebControls;

 

public partial class FrmCustomValidator : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)

    {

        string userId = args.Value; // 지정된 텍스트박스의 값을 받아서.

        if (userId.Length < 3 || userId.Length > 12)

        {

            args.IsValid = false; // 에러

        }

        else

        {

            args.IsValid = true; // 유효성 통과

        }   

    }

}

 



-------------------------------------------------------------------------------------

 


[실행결과]

--> 위의 소스코드에서 "if문"으로 제한한 범위( if (args.Value.length < 3 || args.Value.length > 12) )에 어긋나게 '텍스트박스'에 텍스트를 입력후 '확인'버튼을 누르면 아래그림과 같이 "CustomValidator"컨트롤에 빨간글씨로 '에러메시지'가 출력된다.
 

 


-------------------------------------------------------------------------------------

 


==> [FrmCustomValidator.htm] 소스 및 디자인

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title></title>

    <script type="text/javascript">

        function CheckNum() {

            var obj = document.getElementById("txtEven");

            if (obj.value % 2 == 0) {

                alert("통과");

            }

            else {

                alert("에러");

            }

        }

    </script>

</head>

<body>

 

짝수만 입력 : <input type="text" id="txtEven" /><br />

<input type="button" value="짝수만 입력" onclick="CheckNum();" />

 

</body>

</html>

 

 

 

 

 

-------------------------------------------------------------------------------------

 


[실행결과]

--> [FrmCustomValidator.htm] 소스코드의 "if문"의 조건( if (obj.value % 2 == 0) )에 맞게 '텍스트박스'에 텍스트('짝수')를 입력후 '짝수만 입력'버튼을 누르면 아래그림과 같이 '메시지박스'가 출력된다.





--> '텍스트박스'에 '홀수('5')'를 입력후 '짝수만 입력'버튼을 누르면 아래그림과 같이 '메시지박스'가 출력된다.
 

 

 

Posted by holland14
: