码迷,mamicode.com
首页 > 其他好文 > 详细

文本框输入数字倒计实例代码

时间:2016-01-14 06:09:55      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

文本框输入数字倒计实例代码:
一般情况下,文本框中文字的个数并不是无限的,也就是说具有一定的限制,在人性化程度较好的网站一般有输入文字倒计效果,这样可以便于浏览者组织语言,下面就简单介绍一下如何实现此效果。
代码实例如下:

 

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<title>文本框输入文字倒计实例代码-蚂蚁部落</title> 
<style type="text/css">
#spOwner_Name{color:#808080}
</style>
<script type="text/javascript"> 
function textLimitCheckSj(thisArea, maxLength, SpanId) 
{ 
   var str=thisArea.value; 
   if(getChrLen(str, maxLength)>maxLength*2) 
   { 
     thisArea.value = str.substring(0,x-1); 
   } 
   else 
   { 
     var leftStr=(剩余字数:+Math.floor((maxLength*2-getChrLen(str, maxLength))/2)+‘)‘; 
     document.getElementById(SpanId).innerHTML=leftStr; 
   } 
} 
function getChrLen(str,maxLength) 
{ 
  var realLength=0;
  var len=str.length;
  var charCode=-1; 
  x=0; 
  for(;(x<len)&&(realLength<=maxLength*2);x++) 
  { 
    charCode=str.charCodeAt(x); 
    if(charCode>=0&&charCode<=128)
    {
      realLength+=1;
    } 
    else
    {
      realLength+=2;
    }         
  } 
  return realLength; 
} 
window.onload=function()
{
  var ocontent=document.getElementById("content");
  ocontent.onkeyup=function(){textLimitCheckSj(this,50,spOwner_Name)}
}
</script> 
<body> 
<textarea id="content"></textarea>
<span id="spOwner_Name"><em>(50字以内)</em></span> 
</body>  
</html>

 

以上代码实现了我们想要的效果,当输入内容的时候,能够实时提醒还可以输入的长度,下面就简单介绍一下实现过程。
一.实现原理:
此代码实现的是计算可以输入汉字的个数,在unicode编码中,英文和数字在0-128范围内,只占一个字节,汉字占两个字节。当键盘按键松开时就会触发onkeyup事件,事件处理函数能够计算当前输入字符的长度,并且将剩余的可以输入的汉字个数写入span中,原理大致如此,下面对代码进行一下详细注释。
二.代码注释:
1.function textLimitCheckSj(thisArea,maxLength,SpanId){},此函数用作onkeyup事件处理函数,第一个参数是textarea文本框对象,第二个是输入汉字的最大个数,第三个是span元素的id。
2.var str=thisArea.value,将输入到文本框的内容赋值给变量str。
3.if(getChrLen(str,maxLength)>maxLength*2),判断输入的长度是否超出规定,50个是汉字的个数,一个汉字占两个字节。
4.thisArea.value=str.substring(0,x-1),用来截取字符串,在这里也就是删除最后一个输入的字符。
5. var leftStr=‘(剩余字数:‘+Math.floor((maxLength*2-getChrLen(str, maxLength))/2)+‘)‘,计算出剩余可以输入的汉字数,并组织成字符串。
6.document.getElementById(SpanId).innerHTML=leftStr,将组织好的字符写入span。
7.function getChrLen(str,maxLength) {},此函数用来返回字符串的长度,第二个参数是字符串,第二个是最大汉字的个数。
8.var realLength=0,声明一个变量用于存放字符串的长度。
9.var len=str.length,获取字符串中字符的个数。
10.var charCode=-1,此变量用来unicode码值的,当前初始化为-1。
11.x=0,在for循环中使用。
12.for(;(x<len)&&(realLength<=maxLength*2);x++){},遍历输入字符串的字符,里面的限定条件非常的重要,如果没有realLength<=maxLength*2限定条件,那么文本框将无法正确限定字符串的个数。
13.charCode=str.charCodeAt(x),获取指定索引的字符的unicode码值。
14.if(charCode>=0&&charCode<=128),判断是否是占一个字节的英文字符或者数字。
15.realLength+=1,长度加1。
16.realLength+=2,如果是汉字长度加2。
17.return realLength,返回长度值。
三.相关阅读:
1.this可以参阅JavaScript的this用法详解一章节。
2.value属性可以参阅javascript的textarea.value属性一章节。 
3.substring()函数可以参阅javascript的String对象的substring()方法一章节。 
4.Math.floor()函数可以参阅javascript的Math.floor()方法一章节。 
5.innerHTML属性可以参阅js的innerHTML属性的用法一章节。 
6.charCodeAt()函数可以参阅javascript的String对象的charCodeAt()方法一章节。 

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9734

更多内容可以参阅:http://www.softwhy.com/javascript/

 

文本框输入数字倒计实例代码

标签:

原文地址:http://www.cnblogs.com/nulifendou/p/5129015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!