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 相关文章推荐
JavaScript让IE浏览器event对象符合W3C DOM标准
Nov 24 Javascript
改变隐藏的input中value值的方法
Mar 19 Javascript
原生javascript获取元素样式
Dec 31 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
异步JS框架的作用以及实现方法
Oct 29 Javascript
jquery解析json格式数据的方法(对象、字符串)
Nov 24 Javascript
javascript中类的定义方式详解(四种方式)
Dec 22 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
小文件php+SQLite存储方案
2010/09/04 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
python开发简易版在线音乐播放器
2017/03/03 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
Python无损压缩图片的示例代码
2020/08/06 Python
实习医生自我评价
2013/09/22 职场文书
大学生个人求职信例文
2014/07/07 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS