"WaterMarkTextBox"라는 이름으로 새 폴더를 하나 생성하고, 그 폴더에 "새 항목 추가"를 2번 하여 "html형식"의 파일인 [WaterMarkTextBox.htm]과 "웹 폼(Web Form)형식"의 파일인 [WaterMarkTextBox.aspx]를 만든다. 그 다음 [WaterMarkTextBox.htm]과 [WaterMarkTextBox.aspx]의 코드비하인드 페이지인 [WaterMarkTextBox.aspx.cs]에 코드를 작성한다. (참고로, [WaterMarkTextBox.aspx]의 소스코드와 [WaterMarkTextBox.aspx.cs]의 코드 위쪽("Inherits"부분과 "클래스선언" 부분)에 적혀져 있는 ".13"이라는 문자열을 지우고 실행해야 정상적으로 실행된다.)



[WaterMarkTextBox.aspx] 부분 수정

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





[WaterMarkTextBox.aspx.cs] 부분 수정

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

{

    protected void Page_Load(object sender, EventArgs e)

    {


 

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


[WaterMarkTextBox.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>

    <style type="text/css">

        .water { color:Silver; }

    </style>

    <script src="../../js/jquery-1.3.2-vsdoc2.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function() {

            // 로드시 텍스트박스의 텍스트에 water 클래스 적용

            $('#txtUserID').addClass("water");

            // 레이블의 값을 워터마크텍스트로 가져옴

            var watermakedText = $('#lblUserID').remove().text();

            $('#txtUserID').val(watermakedText)

                .focus(function() {

                    if (this.value == watermakedText) {

                        $(this).val(''); // 텍스트를 입력가능하도록 클리어

                        $('#txtUserID').removeClass("water"); // water CSS 클래스 제거

                    }

                })

                .blur(function() {

                    if (this.value == '') {

                        $(this).val(watermakedText); // 아이디를 입력하지 않으면 다시 워터마크텍스트로 지정

                        $('#txtUserID').addClass("water"); // water CSS 클래스 재 적용

                    }

                });

            // 전송시 값을 입력하지 않으면, 빈값으로 초기화

            $('form').submit(function() {

                // 텍스트박스의 값이 워터마크텍스트라면 빈값으로 처리

                if ($('#txtUserID').val() == watermakedText) {

                    $('#txtUserID').val('');

                    return false; // submit 이벤트 멈춤

                }

            });

        }); // end ready()

    </script>

</head>

<body>

<form name="frm" action="WaterMarkTextBox.aspx">

    <label for="txtUserID" id="lblUserID">아이디를 입력하시오.</label>

    <input type="text" name="txtUserID" id="txtUserID" />

    <input type="submit" value="전송" />

</form>

</body>

</html>

 



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

 


[WaterMarkTextBox.aspx]

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

 

<!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 id="Head1" runat="server">

    <title></title>

</head>

<body>

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

    <div>

   

    </div>

    </form>

</body>

</html>

 



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


[WaterMarkTextBox.aspx.cs]



using System;

 

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

{

    protected void Page_Load(object sender, EventArgs e)

    {

        Response.Write("입력한 아이디 : " + Request["txtUserID"]);

    }

}






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




[실행결과]

--> 첫 화면.





--> 마우스 커서를 텍스트박스 안으로 클릭하여 이동하였을 때의 텍스트박스 화면.




--> 마우스 커서를 다시 텍스트박스 밖으로 클릭하여 이동하였을 때의 텍스트박스 화면.





--> 텍스트박스에 텍스트를 아래그림과 같이 입력하고 '전송'버튼을 누르면...





--> 아래 그림과 같이 웹 페이지에, 바로 위의 그림에서 입력했던 텍스트가 출력된다.

 

 

 

Posted by holland14
: