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,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 Javascript
JavaScript利用正则表达式去除日期中的-
Jun 09 Javascript
jQuery循环滚动新闻列表示例代码
Jun 17 Javascript
js获取字符串最后一位方法汇总
Nov 13 Javascript
JavaScript和CSS交互的方法汇总
Dec 02 Javascript
jQuery中:button选择器用法实例
Jan 04 Javascript
js检测判断日期大于多少天的方法
May 04 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
jQuery实现的导航下拉菜单效果示例
Sep 05 Javascript
Django与Vue语法的冲突问题完美解决方法
Dec 14 Javascript
js中值引用和地址引用实例分析
Jun 21 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返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
用jscript实现新建word文档
2007/06/15 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
python optparse模块使用实例
2015/04/09 Python
Python类属性的延迟计算
2016/10/22 Python
图解Python变量与赋值
2018/04/03 Python
对pandas中Series的map函数详解
2018/07/25 Python
python实现名片管理系统
2018/11/29 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
Python如何给你的程序做性能测试
2020/07/29 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
公司市场部岗位职责
2013/12/02 职场文书
应聘护士求职信
2014/07/21 职场文书
董事长年会致辞
2015/07/29 职场文书
全民创业工作总结
2015/08/13 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
Python多线程 Queue 模块常见用法
2021/07/04 Python