jQuery计算文本框字数及限制文本框字数的方法


Posted in Javascript onMarch 01, 2016

一个中文算两个,一个符号或数字,英文,算一个。(如果是规定140个字,乘以2,那么就是280个)。需要用到Math.ceil方法,因为最后还是要除以2来还原显示给用户的字数;

jQuery计算文本框字数及限制文本框字数的方法

$(function(){ 
var $tex = $(".tex"); 
var $but = $(".but"); 
var ie = jQuery.support.htmlSerialize; 
var str = 0; 
var abcnum = 0; 
var maxNum = 280; 
var texts= 0; 
var num = 0; 
var sets = null; 
$tex.val(""); 
//顶部的提示文字 
$tex.focus(function(){ 
if($tex.val()==""){ 
$("p").html("您还可以输入的字数<span>140</span>"); 
} 
}) 
$tex.blur(function(){ 
if($tex.val() == ""){ 
$("p").html("请在下面输入您的文字:"); 
} 
}) 
//文本框字数计算和提示改变 
if(ie){ 
$tex[0].oninput = changeNum; 
}else{ 
$tex[0].onpropertychange = changeNum; 
} 
function changeNum(){ 
//汉字的个数 
str = ($tex.val().replace(/\w/g,"")).length; 
//非汉字的个数 
abcnum = $tex.val().length-str; 
total = str*2+abcnum; 
if(str*2+abcnum<maxNum || str*2+abcnum == maxNum){ 
$but.removeClass() 
$but.addClass("but"); 
texts =Math.ceil((maxNum - (str*2+abcnum))/2); 
$("p").html("您还可以输入的字数<span>"+texts+"</span>").children().css({"color":"blue"}); 
}else if(str*2+abcnum>maxNum){ 
$but.removeClass("") 
$but.addClass("grey"); 
texts =Math.ceil(((str*2+abcnum)-maxNum)/2); 
$("p").html("您输入的字数超过了<span>"+texts+"</span>").children("span").css({"color":"red"}); 
} 
} 
//按钮点击 
$but.click(function(){ 
if($(this).is(".grey")){ 
sets = setInterval(flash,100); 
$tex.addClass("textColor") 
} 
function flash(){ 
num++; 
if(num == 4){ 
clearInterval(sets); 
} 
if(num%2 == 1){ 
$tex.addClass("textColor") 
}else{ 
$tex.removeClass("textColor") 
} 
} 
}) 
})

一、功能:

用户边输入计算同时进行,告诉用户还剩余多少可输入的字数;

当超过规定的字数后,点击确定,会让输入框闪动

二、功能分析

重点是用什么事件?

标准浏览器用oninput,而IE则使用onpropertychange ,这两个事件的发生条件,是文本框的值发生改变。

字数的计算。

一个中文算两个,一个符号或数字,英文,算一个。(如果是规定140个字,乘以2,那么就是280个)。需要用到Math.ceil方法,因为最后还是要除以2来还原显示给用户的字数;

闪动背景色

这里用到了模运算,因为是重复的动作,第一次有颜色,第二次没有颜色,这样重复的动作,就有闪动效果.

因为肉眼要看到这二次有颜色和无颜色的效果,所以需要用到延时,setTimeout和setInterval. 这里用到的是setInterval,因为要重复动作。

下面一段代码给大家介绍用jQuery实现限制输入字数的文本框。

1.导入外部.js文件:

<script src="http://static.l99.com/js/jquery/jquery-1.2.6.pack.js" type="text/javascript"></script>

2.在<body>标签中加入如下代码:

<body>
还可以输入<span id="word">140</span>个字<br />
<textarea id="txt" name="" cols="" rows=""></textarea>
<script language="javascript" type="text/javascript">
$("#txt").keyup(function(){ 
if($("#txt").val().length > 140){
$("#txt").val( $("#txt").val().substring(0,140) );
}
$("#word").text( 140 - $("#txt").val().length ) ;
});
</script>
</body>

3.如果页面加载时输入框中有默认文本,那么要在页面加载时运行如下jQuery代码,方能正确显示:

$("#word").text( 140 - $("#txt").val().length ) ;
Javascript 相关文章推荐
JavaScript中关于indexOf的使用方法与问题小结
Aug 05 Javascript
20个最新的jQuery插件
Jan 13 Javascript
js控制web打印(局部打印)方法整理
May 29 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
Jul 31 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
详解javascript函数的参数
Nov 10 Javascript
javascript跨域请求包装函数与用法示例
Nov 03 Javascript
JavaScript数组和对象的复制
Mar 21 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 Javascript
webpack4之如何编写loader的方法步骤
Jun 06 Javascript
JS函数进阶之prototy用法实例分析
Jan 15 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 #Javascript
原生javascript实现解析XML文档与字符串
Mar 01 #Javascript
JS创建对象几种不同方法详解
Mar 01 #Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 #Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 #Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
Feb 29 #Javascript
ClearTimeout消除闪动实例代码
Feb 29 #Javascript
You might like
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
JavaScript浏览器选项卡效果
2010/08/25 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
js图片预加载示例
2014/04/30 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
详解python中的线程
2018/02/10 Python
Python和Go语言的区别总结
2019/02/20 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Python自省及反射原理实例详解
2020/07/06 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
机关单位人员学雷锋心得体会
2014/03/10 职场文书
申报材料格式
2014/12/30 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
单位病假条范文
2015/08/17 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang