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 相关文章推荐
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
Jul 04 Javascript
qq悬浮代码(兼容各个浏览器)
Jan 29 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
May 25 Javascript
js实现消息滚动效果
Jan 18 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
Aug 03 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
Jan 31 Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
VUE中setTimeout和setInterval自动销毁案例
Sep 07 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
一段实时更新的时间代码
2006/07/07 Javascript
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
Javascript验证方法大全
2015/09/21 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
python脚本内运行linux命令的方法
2015/07/02 Python
Python实时获取cmd的输出
2015/12/13 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python魔法方法功能与用法简介
2019/04/04 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
医学院毕业生自荐信范文
2014/03/06 职场文书
机电一体化求职信
2014/03/10 职场文书
工程部经理岗位职责
2015/02/02 职场文书
三八妇女节致辞
2015/07/31 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书