網站製作學習誌

記錄學習製作網站的一切

用 JavaScript 計算使用者輸入的文字字數

這是我在 Tim Club 上回應的一篇文章,用來計算使用者輸入的文字字數。有興趣的話,可以延伸出很多應用。例如發送簡訊時,可以讓使用者知道他輸入了多少字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>TEST</title>
<script type="text/javascript">
var iCount = 0;
function changeText(objElement) {
    var oTextCount = document.getElementById("txtCount");
    var oCount = document.getElementById("hdnCount");
    iCount = objElement.value.length;
    oTextCount.innerHTML = "" + iCount;
    oCount.value = parseInt(iCount);
}
</script>
</head>
<body>
<p>total: <span id="txtCount">0</span> char(s)</p>
<textarea name="txtTest" cols="50" rows="10" id="txtTest" onkeyup="changeText(this);"></textarea>
<br />
<input type="button" name="Submit" id="Submit" value="Submit" onclick="alert(document.getElementById('hdnCount').value);" />
<input type="hidden" name="hdnCount" id="hdnCount" value="0" />
</body>
</html>

在 IE6 或是 FireFox 中, JavaScript 能夠判別出中文正確的字數,就算是中英混雜也 OK 。而這裡也採用標準的 JavaScript (ECMAScript) ,利用 DOM 物件來控制動態的數字顯示。

補充:這裡要注意一點,那就是字串長度的計算會受到 HTML 文件編碼的影響。

Comments