WaterMarkTextBox (워터마크 텍스트박스 컨트롤 구현)
.NET프로그래밍/jQuery 1.3.2 2009. 11. 12. 12:56 |"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"]);
}
}
-------------------------------------------------------------------------------------
[실행결과]
--> 첫 화면.
--> 마우스 커서를 텍스트박스 안으로 클릭하여 이동하였을 때의 텍스트박스 화면.
--> 마우스 커서를 다시 텍스트박스 밖으로 클릭하여 이동하였을 때의 텍스트박스 화면.
--> 텍스트박스에 텍스트를 아래그림과 같이 입력하고 '전송'버튼을 누르면...
--> 아래 그림과 같이 웹 페이지에, 바로 위의 그림에서 입력했던 텍스트가 출력된다.
'.NET프로그래밍 > jQuery 1.3.2' 카테고리의 다른 글
JSON(JavaScript Object Notation) - jQuery Ajax - jQuery.getJSON() 메서드 (비동기적으로 JSON파일 로드) (0) | 2009.11.13 |
---|---|
jQuery Ajax - jQuery.load() 메서드 (동적으로 원격 페이지 로드) (0) | 2009.11.13 |
트리뷰(TreeView) 컨트롤 (0) | 2009.11.12 |
Effects - Stop() 메서드 (애니메이션 효과 멈추기) (0) | 2009.11.12 |
Effects - Animate() 메서드 (여러가지 효과 동시 처리) (0) | 2009.11.12 |