jQuery计算textarea中文字数(剩余个数)的小程序

jQuery计算textarea中文字数(剩余个数)的小程序,第1张

复制代码

代码如下:

<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>

[提示:你可先修改部分代码,再按运行]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12476906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存