【JavaScript】多输入框的输入字数即时检查

在《【JavaScript】仿新浪微博原生态兼容IE6的输入字数即时检查》(点击打开链接)中详细设置了单个输入框怎么检查字数的问题,现在如下图,实现多个对话框即时检查输入字数的问题,而且互不影响。如下图,实现了标题与字数的双对话框的字数即时统计,这个组件是互不影响的。

具体代码如下:

1、HTML部分,这里,要把不同的输入框设置成t不同的id,一会儿传入到同一个JavaScript函数inputTest里面去,但是根据id不同去识别不同的组件,这样你就不用设置两个函数了。至于其他组件均使用组件原名+ID的形式,提醒信息组件testtitle/content、即时字数统计主键wordLengthtitle/content,你一会儿在JavaScript就好判断了:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""><html xmlns=""><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>form</title></head><body><form method="post" action="result"><p id="testtitle"></p><span id="wordLengthtitle" style="font-family:Georgia;">0/10</span>标题:<input type="text" name="name" id="title" onkeyup="inputTest(this.id,this.value)"/><br /><p id="testcontent"></p><span id="wordLengthcontent" style="font-family:Georgia;">0/50</span>内容:<textarea id="content" onkeyup="inputTest(this.id,this.value)" rows="10" ></textarea><br /><input type="submit" value="提交" /></form></body></html>2、核心脚本部分,虽然判断的逻辑都相同,代码也几乎完全一模一样,但是必须划分成两个部分来判断,至于如果有三个对话框需要判断就弄成switch就是咯:

<script>//获取长度函数//这里不能用封装好的方法,因为length方法,英文算一个字符,中文也算一个字符function getStrLength(str){//传递一个字符串过来var mylen=0;//遍历这个字符串for(var i=0;i<str.length;i++){//如果字符串的第i个字符的Unicode码在0-128之间就是英文字符,应该算一个长度if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128){mylen++;}else{//否则算两个长度mylen+=2;}}return mylen;}//输入当字符数变更就触发这个函数function inputTest(id,value){//先调getStrLength用统计当前文本框中所含文本的值,因为getStrLength统计出来的东西是英文字符长度,所以要除以2,强行转换为整形//再补上/10替换wordLength中的文本,/应该被转义,否则在某些编译器中无法通过,例如Dreamwaverif(id=="title"){document.getElementById("wordLength"+id).innerHTML=parseInt(getStrLength(value)/2)+"\/10";}else{document.getElementById("wordLength"+id).innerHTML=parseInt(getStrLength(value)/2)+"\/50";}if(id=="title"){//如果超过10个字,20个字符if(parseInt(getStrLength(value))>20){//那么把警告内容显示出来,并把其中的颜色设置为红色,,当然,你在HTML那里设置也可以document.getElementById("test"+id).style.display="block";document.getElementById("test"+id).innerHTML="太长,请修改至10字之内";document.getElementById("test"+id).style.color="#ff0000";}else{//否则隐藏警告内容document.getElementById("test"+id).innerHTML="";document.getElementById("test"+id).style.display="none";} }else{//如果超过10个字,20个字符if(parseInt(getStrLength(value))>100){//那么把警告内容显示出来,并把其中的颜色设置为红色,当然,你在HTML那里设置也可以document.getElementById("test"+id).style.display="block";document.getElementById("test"+id).innerHTML="太长,请修改至50字之内";document.getElementById("test"+id).style.color="#ff0000";}else{//否则隐藏警告内容document.getElementById("test"+id).innerHTML="";document.getElementById("test"+id).style.display="none";} }}</script>

未曾失败的人恐怕也未曾成功过。

【JavaScript】多输入框的输入字数即时检查

相关文章:

你感兴趣的文章:

标签云: