基于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 相关文章推荐
Javascript 获取LI里的内容
Dec 17 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
Apr 07 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
JavaScript函数模式详解
Nov 07 Javascript
JavaScript中的方法调用详细介绍
Dec 30 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
switch语句的妙用(必看篇)
Oct 03 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
React Native使用百度Echarts显示图表的示例代码
Nov 07 Javascript
对node.js中render和send的用法详解
May 14 Javascript
vue非父子组件通信问题及解决方法
Jun 11 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
Apr 17 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
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
js实现窗口全屏示例详解
2019/09/17 Javascript
js实现网页随机验证码
2020/10/19 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
python控制台显示时钟的示例
2014/02/24 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
Python将图片转换为字符画的方法
2020/06/16 Python
实例讲解Python爬取网页数据
2018/07/08 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
如何在sublime编辑器中安装python
2020/05/20 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
美国手机支架公司:PopSockets
2019/11/27 全球购物
1亿有多大教学反思
2014/05/01 职场文书
学习教师法的心得体会
2014/09/03 职场文书
大学生自荐书范文
2015/03/05 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang