基于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 相关文章推荐
用cssText批量修改样式
Aug 29 Javascript
EasyUI中combobox默认值注意事项
Mar 01 Javascript
JavaScript对象反射用法实例
Apr 17 Javascript
JS把内容动态插入到DIV的实现方法
Jul 19 Javascript
Vue数据驱动模拟实现4
Jan 12 Javascript
利用Vue v-model实现一个自定义的表单组件
Apr 27 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 Javascript
angular 服务的单例模式(依赖注入模式下)详解
Oct 22 Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
一次编写,随处运行
2006/10/09 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
Python字符遍历的艺术
2008/09/06 Python
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
tensorflow获取变量维度信息
2018/03/10 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
python安装requests库的实例代码
2019/06/25 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
优秀党员主要事迹
2014/01/19 职场文书
青春演讲稿范文
2014/05/08 职场文书
建筑结构施工求职信
2014/07/11 职场文书