基于jQuery的计算文本框字数的代码


Posted in Javascript onJune 06, 2012

一、功能:

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

2.当超过规定的字数后,点击确定,会让输入框闪动
二、功能分析

1.重点是用什么事件?

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

2.字数的计算。

2.1一个中文算两个,一个符号或数字,英文,算一个。(如果是规定140个字,乘以2,那么就是280个)

2.2需要用到Math.ceil方法,因为最后还是要除以2来还原显示给用户的字数;

3.闪动背景色

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

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

感谢“妙味课堂”的视频

在线演示:http://demo.3water.com/js/2012/myinputCount/
打包下载:https://3water.com/jiaoben/55149.html

基于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") 
} 
} 
}) 
})
Javascript 相关文章推荐
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
异步加载script的代码
Jan 12 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
Aug 10 Javascript
javascript中callee与caller的区别分析
Apr 20 Javascript
FullCalendar日历插件应用之数据展现(一)
Dec 23 Javascript
angular.js分页代码的实例
Jul 27 Javascript
JavaScript SHA-256加密算法详细代码
Oct 06 Javascript
javascript的document中的动态添加标签实现方法
Oct 24 Javascript
vue之将echart封装为组件
Jun 02 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 Javascript
原生JS与JQ获取元素的区别详解
Feb 13 Javascript
Node.js API详解之 readline模块用法详解
May 22 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 #Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
Jun 04 #Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 #Javascript
javascript中获取下个月一号,是星期几
Jun 01 #Javascript
一行代码告别document.getElementById
Jun 01 #Javascript
javascript的console.log()用法小结
May 31 #Javascript
jQuery 联动日历实现代码
May 31 #Javascript
You might like
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
跨浏览器的事件对象介绍
2012/06/27 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
python使用any判断一个对象是否为空的方法
2014/11/19 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
python实现加密的方式总结
2020/01/19 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
网络维护中文求职信
2014/01/03 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
学校火灾防控方案
2014/06/09 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
升学宴学生致辞
2015/07/27 职场文书
新课程改革心得体会
2016/01/22 职场文书
Python OpenGL基本配置方式
2022/05/20 Python