基于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之HTMLCollection接口代码
Apr 27 Javascript
JQ技术实现注册页面带有校验密码强度
Jul 27 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
JS组件系列之Bootstrap Icon图标选择组件
Jan 28 Javascript
JS实现简单的tab切换选项卡效果
Sep 21 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
详解express + mock让前后台并行开发
Jun 06 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
May 21 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
Jun 27 Javascript
vue全局使用axios的操作
Sep 08 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
JS日历 推荐
2006/12/03 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
会计找工作求职信范文
2013/12/09 职场文书
军训自我鉴定范文
2014/02/13 职场文书
主题党日活动总结
2014/07/08 职场文书
政协调研汇报材料
2014/08/15 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
社区党支部承诺书
2015/04/29 职场文书