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 相关文章推荐
一个js写的日历(代码部分网摘)
Sep 20 Javascript
jquery ui dialog实现弹窗特效的思路及代码
Aug 03 Javascript
innerText 使用示例
Jan 23 Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
Nov 17 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
javascript实现禁止复制网页内容汇总
Dec 30 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
Nov 30 Javascript
JS 调用微信扫一扫功能
Dec 22 Javascript
JavaScript设计模式之享元模式实例详解
Jan 17 Javascript
layer弹出层自定义提交取消按钮的例子
Sep 10 Javascript
js+html+css实现手动轮播和自动轮播
Dec 30 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
php 调用远程url的六种方法小结
2009/11/02 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
php异常处理使用示例
2014/02/25 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
javascript中的有名函数和无名函数
2007/10/17 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
印度服装购物网站:Limeroad
2018/09/26 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
承租经营合作者协议书
2014/10/01 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript