JS TextArea字符串长度限制代码集合


Posted in Javascript onOctober 31, 2012
<html> 
<body> 
<textarea id="t"></textarea> 
<input type="text" id="b2" /> 
<script type="text/javascript"> 
textAreaLimit("t",{lastMsgLabel:"b2"}) 
function textAreaLimit(area,op){ 
var defaultOp = { 
maxLength:10 //最大长度 
, IsNumber:false //只能是数字 
, lastMsgLabel:null //即时显示可输入个数的Input 
, msg:"还可以输入{0}个文字" 
, errorMsg:"文字个数超出最大限制" 
}; 
var label; 
if(typeof area == "string"){ 
area = document.getElementById(area); 
} 
if(!area){ 
return; 
} 
for(var i in op){ 
defaultOp[i] = op[i]; 
} 
if(defaultOp.lastMsgLabel){ 
if(typeof defaultOp.lastMsgLabel == "string"){ 
label = document.getElementById(defaultOp.lastMsgLabel); 
} 
} 
if(defaultOp.IsNumber){ 
area.style.imeMode="Disabled";//IE 
area.onkeydown = function(){ 
return event.keyCode != 229; 
} 
} 
area.onkeyup = function(){ 
if(defaultOp.IsNumber){ 
this.value = this.value.replace(/\D/g,"");//IE之外的 
} 
if(this.value.length > defaultOp.maxLength){ 
//------------------------------------------------------------------------------- 
//方案① 
this.disabled = "disabled"; 
this.value = this.value.slice(0,defaultOp.maxLength); 
this.removeAttribute("disabled"); 
this.focus(); 
//方案② 
//或 
//alert(defaultOp.errorMsg); 
//this.value = this.value.slice(0,defaultOp.maxLength); 
//------------------------------------------------------------------------------- 
} 
if(label){ 
label.value = defaultOp.msg.replace(/\{0\}/,defaultOp.maxLength -this.value.length); 
} 
} 
} 
</script> 
</body> 
</html>

解决输入日语+全角时出现的BUG 主要是在红线中间的代码。
思路就是中断日语的输入状态。
用如果输入超出时能忍受弹窗的话,就用方案②,否则的话就用方案①。
Javascript 相关文章推荐
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
Jun 27 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
一个js导致的jquery失效问题的解决方法
Nov 27 Javascript
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
jQuery绑定事件on()与弹窗的简要概述
Apr 27 Javascript
详谈jQuery.load()和Jsp的include的区别
Apr 12 jQuery
浅谈vue单一组件下动态修改数据时的全部重渲染
Mar 01 Javascript
layui弹出框Tab选项卡的示例代码
Sep 04 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
Nov 13 Javascript
vue实现移动端拖动排序
Aug 21 Javascript
JS 控件事件小结
Oct 31 #Javascript
jQuery事件 delegate()使用方法介绍
Oct 30 #Javascript
fancybox modal的完美解决(右上的X)
Oct 30 #Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 #Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 #Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 #Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 #Javascript
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP新手上路(五)
2006/10/09 PHP
Ajax PHP分页演示
2007/01/02 PHP
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
PHP函数常用用法小结
2010/02/08 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
jquery常用操作小结
2014/07/21 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
python实现京东秒杀功能
2018/07/30 Python
python3.5绘制随机漫步图
2018/08/27 Python
python仿抖音表白神器
2019/04/08 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
TCP/IP的分层模型
2013/10/27 面试题
小学运动会入场式解说词
2014/02/18 职场文书
小学生开学感言
2014/02/28 职场文书
《将心比心》教学反思
2014/04/08 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
单位委托书怎么写
2014/08/02 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python