트위터처럼 140자 제한이 있는 경우, 남은 글자수를 보여줍니다.

0보다 아래로 떨어지면 붉은 글씨로 바뀌고 submit을 할 수 없게 했습니다.


index.html

<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Input Counter</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link href="stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="application.js" type="text/javascript"></script>
</head>
<body>
<div id="container">
<form action="index.html" method="POST">
<textarea></textarea>
<span class="input-counter"></span>
<input type="submit" id="input-submit" value="등록" />
</form>
</div>
</body>
</html>


stylesheet.js

body {
font-size: 12px;
background: #FFF;
color: #333;
margin: 0;
}

#container {
margin: 10px auto;
width: 500px;
padding: 10px;
background: #CCC;
}

form {
overflow: hidden;
height: 100%;
}

textarea {
display: block;
width: 99%;
height: 5.0em;
margin-bottom: 0.5em;
}

span.input-counter {
float: left;
font-weight: bold;
color: #000;
}

span.input-counter.disabled {
color: #F00;
}

input#input-submit {
float: right;
}


application.js

$(function() {
var maxLength = 140;

function updateInputCount() {
var textLength = $('textarea').val().length;
var count = maxLength - textLength;
$('span.input-counter').text(count);
if (count < 0) {
$('span.input-counter').addClass('disabled');
$('input#input-submit').prop('disabled', true);
} else {
$('span.input-counter').removeClass('disabled');
$('input#input-submit').prop('disabled', false);
}
}

$('textarea')
.focus(updateInputCount)
.blur(updateInputCount)
.keypress(updateInputCount);
window.setInterval(updateInputCount, 100);

updateInputCount();
});
2011/11/03 04:39 2011/11/03 04:39

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다