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实现仿网易邮箱全屏动感滚动插件fullPage
Sep 20 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
修改js confirm alert 提示框文字的简单实例
Jun 10 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 Javascript
解决URL地址中的中文乱码问题的办法
Feb 10 Javascript
利用Node.js对文件进行重命名
Mar 12 Javascript
jQuery模拟爆炸倒计时功能实例代码
Aug 21 jQuery
vue引入ueditor及node后台配置详解
Jan 03 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
Jan 10 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
获取远程文件大小的php函数
2010/01/11 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
2011/01/07 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
Python面向对象类的继承实例详解
2018/06/27 Python
Python 远程开关机的方法
2020/11/18 Python
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
中职应届生会计求职信
2013/10/23 职场文书
大学四年规划书范文
2013/12/27 职场文书
运动会致辞稿50字
2014/02/04 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
浅谈Python魔法方法
2021/06/28 Java/Android