代码如下:
<div
class="area">
<p>
还可以输入<b
class="num">140</b>字</p>
<textarea
class="chackTextarea"></textarea>
</div>
<script
type="text/javascript">
var
txtobj
=
{
divName:
"area",
//外层容器的class
textareaName:
"chackTextarea",
//textarea的class
numName:
"num",
//数字的class
num:
140
//数字的最大数目
}
var
textareaFn
=
function
()
{
//定义变逗隐差量
var
$onthis
//指向当前
var
$divname
=
txtobj.divName
//外层容器的class
var
$textareaName
=
txtobj.textareaName
//textarea的class
var
$numName
=
txtobj.numName
//数字的class
var
$num
=
txtobj.num
//数字的最山皮大数目
function
isChinese(str)
{
//判断是不是中文
var
reCh
=
/[u00-uff]/
return
!reCh.test(str)
}
function
numChange()
{
var
strlen
=
0
//初始定义长度为0
var
txtval
=
$.trim($onthis.val())
for
(var
i
=
0
i
<
txtval.length
i++)
{
if
(isChinese(txtval.charAt(i))
==
true)
{
strlen
=
strlen
+
2
//中文为2个字符
}
else
{
strlen
=
strlen
+
1
//英文一个字符
}
}
strlen
=
Math.ceil(strlen
/
2)
//中英文相加除2取整数
if
($num
-
strlen
<
0)
{
$par.html("超出
<b
style='color:redfont-weight:lighter'
class="
+
$numName
+
">"
+
Math.abs($num
-
strlen)
+
"</b>
字")
//超出的样式
}
else
{
$par.html("还可以输入
<b
class="
+
$numName
+
">"
+
($num
-
strlen)
+
"</携激b>
字")
//正常时候
}
$b.html($num
-
strlen)
}
$("."
+
$textareaName).live("focus",
function
()
{
$b
=
$(this).parents("."
+
$divname).find("."
+
$numName)
//获取当前的数字
$par
=
$b.parent()
$onthis
=
$(this)
//获取当前的textarea
var
setNum
=
setInterval(numChange,
500)
})
}
textareaFn()
</script>
文本框 textarea限制输入文字个数的的javascript代码,我们经常在评论留言页面我们需要在客户端限制访客的留言长度,当然最好我们在服务器端也要加上相应的弯旁代码,因为客户端的限制是相对的。本文整理了3种限制输入字符数的方法:
方法一:文本框textarea限制输入文字个数为200个
<h3>设计理念说明(200字以内)</h3>
<textarea onkeyup="checkLen(this)"></textarea>
<div>您还可以输入 <span id="count">200</span>个文字</div>
<script type="text/javascript">
function checkLen(obj)
{
var maxChars = 200//最多字符数
if (obj.value.length >maxChars)
obj.value = obj.value.substring(0,maxChars)
var curr = maxChars - obj.value.length
document.getElementByIdx_x("count").innerHTML = curr.toString()
}
</script>
[提示:你可先修改部分代码,再按运行]
方法二:显示已经用字数和剩余字数
<script>
function cal() {
if(a.value.length>20) {
a.value=a.value.slice(0,20)
b.value=20
c.value=0
}
else {
b.value=a.value.length
c.value=20-eval_r(b.value)
}
}
</script>
<textarea id="a" onpropertychange="cal()"></textarea>
已有字数:<input id=b size=5 value="0" disabled>
剩余字数:<input id=c size=5 value="20" disabled><br>
[提示:你可先修改部分代码,埋唯橡再按运行]
方法三:支持双字节
<!DOCTYPE HTML PUBLIC "-//W3C/山基/DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>文本框textarea限制输入文字个数的方法 - 中国asp之家</TITLE>
</HEAD>
<BODY>
<textarea onkeyup="cls(this,50,'v')" oncontextmenu="cls(this,50,'v')"></textarea>
<span id="v"></span>
<script type="text/javascript">
function cls(obj,max,v){
var reg=/[^x00-xff]/gm
var str=obj.value.replace(reg,'aa')//全换成单字节字符计算
var v=document.getElementByIdx_x('v')
if(str.length>max){
var n=0,strr=[]
for(var i=0i<obj.value.lengthi++){//得到50字节以内的字符
/[^x00-xff]/.test(obj.value.charAt(i))?n+=2:n+=1
if(n>max)break
strr.push(obj.value.charAt(i))
}
obj.value=strr.join('')
v.innerHTML=0
}else{
v.innerHTML=max-str.length
}
}
</script>
</BODY>
</HTML>
[提示:你可先修改部分代码,再按运行]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)