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 相关文章推荐
Json对象替换字符串占位符实现代码
Nov 17 Javascript
JavaScript中的依赖注入详解
Mar 18 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
详解JS中遍历语法的比较
Apr 07 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 Javascript
Electron 如何调用本地模块的方法
Feb 01 Javascript
利用vue重构有赞商城的思路以及总结整理
Feb 21 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
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中显示格式化的用户输入
2006/10/09 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
php防攻击代码升级版
2010/12/29 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
python3.0 字典key排序
2008/12/24 Python
python控制台显示时钟的示例
2014/02/24 Python
Python os模块学习笔记
2015/06/21 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
Django 路由控制的实现
2019/07/17 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
this关键字的作用
2016/01/30 面试题
国旗下的演讲稿
2014/05/08 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
趣味运动会赞词
2015/07/22 职场文书
高中信息技术教学反思
2016/02/16 职场文书