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 相关文章推荐
Aptana调试javascript图解教程
Nov 30 Javascript
IE6下focus与blur错乱的解决方案
Jul 31 Javascript
10款非常有用的 Ajax 插件分享
Mar 14 Javascript
JS打开图片另存为对话框实现代码
Dec 26 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
浅谈Javascript Base64 加密解密
Dec 28 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
JS实现页面跳转参数不丢失的方法
Nov 28 Javascript
Vue生命周期示例详解
Apr 12 Javascript
微信小程序的部署方法步骤
Sep 04 Javascript
layui按条件隐藏表格列的实例
Sep 19 Javascript
token 机制和实现方式
Dec 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脚本并取得参数的方法
2016/01/25 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
十岁生日家长答谢词
2014/01/17 职场文书
连带责任保证书
2014/04/29 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
党员示范岗材料
2014/12/19 职场文书
高三英语教学反思
2016/03/03 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电