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 setTimeout()函数介绍及应用以倒计时为例
Dec 12 Javascript
javascript 获取函数形参个数
Jul 31 Javascript
jQuery大于号(&gt;)选择器的作用解释
Jan 13 Javascript
举例讲解Node.js中的Writable对象
Jul 29 Javascript
jQuery UI Bootstrap是什么?
Jun 17 Javascript
AngularJS模块详解及示例代码
Aug 17 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
JS如何生成一个不重复的ID的函数
Dec 25 Javascript
如何提高javascript加载速度
Dec 26 Javascript
vue项目中实现图片预览的公用组件功能
Oct 26 Javascript
React实现全选功能
Aug 25 Javascript
Vue ​v-model相关知识总结
Jan 28 Vue.js
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
239军机修复记
2021/03/02 无线电
PHP多线程抓取网页实现代码
2010/07/22 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
python检测IP地址变化并触发事件
2018/12/26 Python
python实现多张图片拼接成大图
2019/01/15 Python
python3 线性回归验证方法
2019/07/09 Python
python异常处理和日志处理方式
2019/12/24 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
什么是GWT的Module
2013/01/20 面试题
函授本科自我鉴定
2014/02/04 职场文书
幼儿园春季开学寄语
2014/04/03 职场文书
小学生评语集锦
2014/04/18 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书