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 相关文章推荐
jquery easyui combobox模糊过滤(示例代码)
Nov 30 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
Feb 13 Javascript
推荐10 款 SVG 动画的 JavaScript 库
Mar 24 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
Feb 02 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
Dec 14 Javascript
老生常谈js数据类型
Aug 03 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
vue slots 组件的组合/分发实例
Sep 06 Javascript
npm scripts 使用指南详解
Oct 08 Javascript
axios携带cookie配置详解(axios+koa)
Dec 28 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
Sep 26 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
Apr 07 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开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python实现静态web服务器
2019/09/03 Python
Python实现微信机器人的方法
2019/09/06 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
2014年科室工作总结
2014/11/20 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
先进学校事迹材料
2014/12/30 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python