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 相关文章推荐
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
Jul 14 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
Jul 03 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
Oct 08 Javascript
JS 数字转换为大写金额的简单实例
Aug 04 Javascript
vue.js表格分页示例
Oct 18 Javascript
深入浅析Vue 中 ref 的使用
Apr 29 Javascript
如何实现双向绑定mvvm的原理实现
May 28 Javascript
详解Vue的ref特性的使用
Jan 24 Javascript
JS实现鼠标按下拖拽效果
Jul 23 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 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获取地址栏信息的代码
2008/10/08 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
webpack优化的深入理解
2018/12/10 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
python学习数据结构实例代码
2015/05/11 Python
Python中防止sql注入的方法详解
2017/02/25 Python
基于python时间处理方法(详解)
2017/08/14 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
Python面向对象实现方法总结
2020/08/12 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
俄语专业毕业生求职信
2014/07/12 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电