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

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

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

时间: 2024-10-18 11:31:41

文本框输入数字倒计实例代码的相关文章

JS限制文本框输入数字

1.输入大于0的正整数 <input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.

js控制文本框输入数字和小数点等

1 1.文本框只能输入数字代码(小数点也不能输入) 2 <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> 3 4 2.只能输入数字,能输小数点. 5 <input onkeyup="if(isNaN(value))execCommand('undo')"

实现文本框输入内容提示代码实例

实现文本框输入内容提示代码实例:比较人性化的网站一般都是比较讲究细节的,比如文本框输入内容具有提示效果,在默认情况下,文本框有提示文本,当鼠标放入文本框输入文本的时候,提示文本会消失,下面就通过代码实例介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="ht

jquery正则表达式显示文本框输入范围 只能输入数字、小数、汉字、英文字母的方法

正则表达式限制文本框只能输入数字 许多时候我们在制作表单时需要限制文本框输入内容的类型,下面我们用正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等各类代码.1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">2.只能输入数字,能输

文本框输入限定数字或小数

<input id="amount" style="IME-MODE: disabled; WIDTH: 60px; HEIGHT: 15px" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" maxlength="5" size="

文本框输入提示/自动完成功能

<!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> <title>文本框输入提示/自动完成功能</ti

制作一个简单的文本框输入的网页

题目:制作一个简单的网页(包含一个文本框.一个按钮),在页面上输出用户在文本框输入的内容,要求用JavaScript获取文本框内容. 一.首先利用html在网页上制作表单,代码如下: **onclick事件:onclick 事件会在对象被点击时发生. 二.利用js获取输入信息,并将其输出: 相关知识: 1.给用户确认消息,真正实现交互,使用语句confirm();给用户提示信息,实现单向通信,使用语句alert(). 三.运行结果: 1.用浏览器打开结果如下: 2.输入文本框内容,点击[提交]:

监听文本框输入开发仿新浪微博限制输入字数的textarea插件

监听文本框输入 Firefox.Chrome.IE9,IE10 均支持 oninput 事件,此外所有版本的 IE 均支持 onpropertychange 事件. oninput 事件在用户输入.退格(backspace).删除(delete).剪切(ctrl + x).粘贴(ctrl + v)及鼠标剪切与粘贴时触发(在 IE9 中只在输入.粘贴.鼠标粘贴时触发). onpropertychange 事件在用户输入.退格(backspace).删除(delete).剪切(ctrl + x).粘

文本框输入完成后隐藏键盘

隐藏虚拟键盘的两种方式 文本框输入信息后,隐藏键盘: 两种方式,第一种如果输入字符,可以直接按return键,隐藏键盘:第二种方式按屏幕空白的地方,隐藏界面. 实现方式: 方式一:给文本框增加Action,选择事件类型为Did End On Exit,然后实现方法中增加逻辑代码: 方式二:触碰背景,首先要修改背景类,默认UIView是不响应事件,修改为UIControl,是其子类,并增加动作backgroupTap,对应事件类型为TouchDown: 实现代码如下所示: .h文件增加输出口和动作